xref: /original-bsd/usr.bin/f77/libI77/lio.h (revision 7c3db03c)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)lio.h	5.3 (Berkeley) 05/13/90
7  */
8 
9 /*
10  * copy of ftypes from the compiler
11  * variable types numeric assumptions:
12  *	int < reals < complexes
13  *	TYDREAL-TYREAL = TYDCOMPLEX-TYCOMPLEX
14  */
15 
16 #define TYUNKNOWN 0
17 #define TYADDR 1
18 #define TYSHORT 2
19 #define TYLONG 3
20 #define TYREAL 4
21 #define TYDREAL 5
22 #define TYCOMPLEX 6
23 #define TYDCOMPLEX 7
24 #define TYLOGICAL 8
25 #define TYCHAR 9
26 #define TYSUBR 10
27 #define TYERROR 11
28 
29 #define NTYPES (TYERROR+1)
30 
31 #define	LINE	80
32 #define LINTW	(strlen(buf))
33 #define	LLOGW	3
34 #define LSTRW	(len+2)
35 #define	LLOW	1.0e-1
36 #define	LHIGH	1.0e+6			/* 1.0e+LFD */
37 #define LDHIGH	1.0e+14			/* 1.0e+LDFD */
38 #define	LFD	6
39 #define	LFW	(LFD+4)
40 #define LDFD	14
41 #define LDFW	(LDFD+4)
42 #define	LED	LFD
43 #define	LEW	LFW+4
44 #define	LEE	2
45 #define LDED	LDFD
46 #define LDEW	LDFW+4
47 #define LDEE	2
48 #define LCW	(width(a)+width(b)+5)
49 #define LDCW	(dwidth(a)+dwidth(b)+5)
50 
51 #define abs(z)	(z<0?-z:z)
52 #define width(z) ((z!=0.0 && (abs(z)>=LHIGH || abs(z)<LLOW))?LEW:LFW)
53 #define dwidth(z) ((z!=0.0 && (abs(z)>=LDHIGH || abs(z)<LLOW))?LDEW:LDFW)
54 #define ERR(x)	if(n=(x)) err(n>0?errflag:endflag,n,"list io")
55 #define ERRCHK(x)	if(n=(x)) goto got_err;
56 #define chk_len(w) if(recpos+w > line_len) PUT('\n');
57 
58 typedef union
59 {	short	flshort;
60 	ftnint	flint;
61 	float	flreal;
62 	double	fldouble;
63 } flex;
64 
65 extern int (*lioproc)();
66 extern flag leof;
67 extern ioflag lquit,l_first;
68 extern int lcount,line_len;
69