# /* * sed -- stream editor * * */ #define CBRA 1 #define CCHR 2 #define CDOT 4 #define CCL 6 #define CNL 8 #define CDOL 10 #define CEOF 11 #define CKET 12 #define CNULL 13 #define CLNUM 14 #define CEND 16 #define CDONT 17 #define CBACK 18 #define STAR 01 #define NLINES 256 #define DEPTH 20 #define PTRSIZE 100 #define RESIZE 5000 #define ABUFSIZE 20 #define LBSIZE 4000 #define ESIZE 256 #define LABSIZE 50 #define NBRA 9 FILE *fin; union reptr *abuf[ABUFSIZE]; union reptr **aptr; char *lastre; char ibuf[512]; char *cbp; char *ebp; char genbuf[LBSIZE]; char *loc1; char *loc2; char *locs; char seof; char *reend; char *lbend; char *hend; char *lcomend; union reptr *ptrend; int eflag; int dolflag; int sflag; int jflag; int numbra; int delflag; long lnum; char linebuf[LBSIZE+1]; char holdsp[LBSIZE+1]; char *spend; char *hspend; int nflag; int gflag; char *braelist[NBRA]; char *braslist[NBRA]; long tlno[NLINES]; int nlno; char fname[12][40]; FILE *fcode[12]; int nfiles; #define ACOM 01 #define BCOM 020 #define CCOM 02 #define CDCOM 025 #define CNCOM 022 #define COCOM 017 #define CPCOM 023 #define DCOM 03 #define ECOM 015 #define EQCOM 013 #define FCOM 016 #define GCOM 027 #define CGCOM 030 #define HCOM 031 #define CHCOM 032 #define ICOM 04 #define LCOM 05 #define NCOM 012 #define PCOM 010 #define QCOM 011 #define RCOM 06 #define SCOM 07 #define TCOM 021 #define WCOM 014 #define CWCOM 024 #define YCOM 026 #define XCOM 033 char *cp; char *reend; char *lbend; union reptr { struct reptr1 { char *ad1; char *ad2; char *re1; char *rhs; FILE *fcode; char command; char gfl; char pfl; char inar; char negfl; }; struct reptr2 { char *ad1; char *ad2; union reptr *lb1; char *rhs; FILE *fcode; char command; char gfl; char pfl; char inar; char negfl; }; } ptrspace[PTRSIZE], *rep; char respace[RESIZE]; struct label { char asc[9]; union reptr *chain; union reptr *address; } ltab[LABSIZE]; struct label *lab; struct label *labend; int f; int depth; int eargc; char **eargv; extern char bittab[]; union reptr **cmpend[DEPTH]; int depth; union reptr *pending; char *badp; char bad; char *compile(); char *ycomp(); char *address(); char *text(); char *compsub(); struct label *search(); char *gline(); char *place(); char compfl;