BSD 4_1c_2 release
[unix-history] / usr / src / usr.bin / dc / dc.h
CommitLineData
0a5802fd 1/*
e804469b 2 * @(#)dc.h 1.1 (Berkeley) 2/11/83
0a5802fd
RH
3 */
4#define FATAL 0
5#define NFATAL 1
6#define BLK sizeof(struct blk)
7#define PTRSZ sizeof(int *)
8#define HEADSZ 1024
9#define STKSZ 100
10#define RDSKSZ 100
11#define TBLSZ 256
12#define ARRAYST 0241
13#define MAXIND 2048
14#define NL 1
15#define NG 2
16#define NE 3
17#define length(p) ((p)->wt-(p)->beg)
18#define rewind(p) (p)->rd=(p)->beg
19#define create(p) (p)->rd = (p)->wt = (p)->beg
20#define fsfile(p) (p)->rd = (p)->wt
21#define truncate(p) (p)->wt = (p)->rd
22#define sfeof(p) (((p)->rd==(p)->wt)?1:0)
23#define sfbeg(p) (((p)->rd==(p)->beg)?1:0)
24#define sungetc(p,c) *(--(p)->rd)=c
25#ifdef interdata
26#define NEGBYTE 0200
27#define MASK (-1 & ~0377)
28#define sgetc(p) ( ((p)->rd==(p)->wt) ? EOF :( ((*(p)->rd & NEGBYTE) != 0) ? ( *(p)->rd++ | MASK): *(p)->rd++ ))
29#define slookc(p) ( ((p)->rd==(p)->wt) ? EOF :( ((*(p)->rd & NEGBYTE) != 0) ? (*(p)->rd | MASK) : *(p)->rd ))
30#define sbackc(p) ( ((p)->rd==(p)->beg) ? EOF :( ((*(--(p)->rd) & NEGBYTE) != 0) ? (*(p)->rd | MASK): *(p)->rd ))
31#endif
32#ifndef interdata
33#define sgetc(p) (((p)->rd==(p)->wt)?EOF:*(p)->rd++)
34#define slookc(p) (((p)->rd==(p)->wt)?EOF:*(p)->rd)
35#define sbackc(p) (((p)->rd==(p)->beg)?EOF:*(--(p)->rd))
36#endif
37#define sputc(p,c) {if((p)->wt==(p)->last)more(p); *(p)->wt++ = c; }
38#define salterc(p,c) {if((p)->rd==(p)->last)more(p); *(p)->rd++ = c; if((p)->rd>(p)->wt)(p)->wt=(p)->rd;}
39#define sunputc(p) (*( (p)->rd = --(p)->wt))
40#define zero(p) for(pp=(p)->beg;pp<(p)->last;)*pp++='\0'
41#define OUTC(x) {printf("%c",x); if(--count == 0){printf("\\\n"); count=ll;} }
42#define TEST2 {if((count -= 2) <=0){printf("\\\n");count=ll;}}
43#define EMPTY if(stkerr != 0){printf("stack empty\n"); continue; }
44#define EMPTYR(x) if(stkerr!=0){pushp(x);printf("stack empty\n");continue;}
45#define EMPTYS if(stkerr != 0){printf("stack empty\n"); return(1);}
46#define EMPTYSR(x) if(stkerr !=0){printf("stack empty\n");pushp(x);return(1);}
47#define error(p) {printf(p); continue; }
48#define errorrt(p) {printf(p); return(1); }
49struct blk {
50 char *rd;
51 char *wt;
52 char *beg;
53 char *last;
54};
55struct blk *hfree;
56struct blk *getwd();
57struct blk *lookwd();
58struct blk *getdec();
59struct blk *morehd();
60
61struct blk *arg1, *arg2;
62int svargc;
63char savk;
64char **svargv;
65int dbg;
66int ifile;
67FILE *curfile;
68struct blk *scalptr, *basptr, *tenptr, *inbas;
69struct blk *sqtemp, *chptr, *strptr, *divxyz;
70struct blk *stack[STKSZ];
71struct blk **stkptr,**stkbeg;
72struct blk **stkend;
73int stkerr;
74int lastchar;
75struct blk *readstk[RDSKSZ];
76struct blk **readptr;
77struct blk *rem;
78int k;
79struct blk *irem;
80int skd,skr;
81struct blk *pop(),*readin(),*add0(),*mult();
82struct blk *scalint();
83struct blk *removc();
84struct blk *add(),*div(),*removr();
85struct blk *exp();
86struct blk *sqrt();
87struct blk *salloc(),*copy();
88struct blk *scale();
89int neg;
90struct sym {
91 struct sym *next;
92 struct blk *val;
93} symlst[TBLSZ];
94struct sym *stable[TBLSZ];
95struct sym *sptr,*sfree;
96struct wblk {
97 struct blk **rdw;
98 struct blk **wtw;
99 struct blk **begw;
100 struct blk **lastw;
101};
102FILE *fsave;
103long rel;
104long nbytes;
105long all;
106long headmor;
107long obase;
108int fw,fw1,ll;
109int (*outdit)();
110int bigot(),hexot();
111int logo;
112int log10;
113int count;
114char *pp;
115int (*signal())();
116int onintr();
117char *malloc();
118char *nalloc();
119char *realloc();
120char *dummy;