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