xref: /csrg-svn/usr.bin/f77/libI77/lio.h (revision 47943)
1*47943Sbostic /*-
2*47943Sbostic  * Copyright (c) 1980 The Regents of the University of California.
3*47943Sbostic  * All rights reserved.
42509Sdlw  *
5*47943Sbostic  * %sccs.include.proprietary.c%
6*47943Sbostic  *
7*47943Sbostic  *	@(#)lio.h	5.4 (Berkeley) 04/12/91
823061Skre  */
923061Skre 
1023061Skre /*
112509Sdlw  * copy of ftypes from the compiler
122509Sdlw  * variable types numeric assumptions:
132509Sdlw  *	int < reals < complexes
142509Sdlw  *	TYDREAL-TYREAL = TYDCOMPLEX-TYCOMPLEX
152509Sdlw  */
162509Sdlw 
172509Sdlw #define TYUNKNOWN 0
182509Sdlw #define TYADDR 1
192509Sdlw #define TYSHORT 2
202509Sdlw #define TYLONG 3
212509Sdlw #define TYREAL 4
222509Sdlw #define TYDREAL 5
232509Sdlw #define TYCOMPLEX 6
242509Sdlw #define TYDCOMPLEX 7
252509Sdlw #define TYLOGICAL 8
262509Sdlw #define TYCHAR 9
272509Sdlw #define TYSUBR 10
282509Sdlw #define TYERROR 11
292509Sdlw 
302509Sdlw #define NTYPES (TYERROR+1)
312509Sdlw 
322509Sdlw #define	LINE	80
332509Sdlw #define LINTW	(strlen(buf))
342509Sdlw #define	LLOGW	3
352509Sdlw #define LSTRW	(len+2)
362509Sdlw #define	LLOW	1.0e-1
3741872Sbostic #define	LHIGH	1.0e+6			/* 1.0e+LFD */
3841872Sbostic #define LDHIGH	1.0e+14			/* 1.0e+LDFD */
392509Sdlw #define	LFD	6
402509Sdlw #define	LFW	(LFD+4)
412509Sdlw #define LDFD	14
422509Sdlw #define LDFW	(LDFD+4)
432509Sdlw #define	LED	LFD
442509Sdlw #define	LEW	LFW+4
452509Sdlw #define	LEE	2
462509Sdlw #define LDED	LDFD
472509Sdlw #define LDEW	LDFW+4
482509Sdlw #define LDEE	2
492509Sdlw #define LCW	(width(a)+width(b)+5)
502509Sdlw #define LDCW	(dwidth(a)+dwidth(b)+5)
512509Sdlw 
522509Sdlw #define abs(z)	(z<0?-z:z)
532509Sdlw #define width(z) ((z!=0.0 && (abs(z)>=LHIGH || abs(z)<LLOW))?LEW:LFW)
542509Sdlw #define dwidth(z) ((z!=0.0 && (abs(z)>=LDHIGH || abs(z)<LLOW))?LDEW:LDFW)
552509Sdlw #define ERR(x)	if(n=(x)) err(n>0?errflag:endflag,n,"list io")
5624101Sjerry #define ERRCHK(x)	if(n=(x)) goto got_err;
5724101Sjerry #define chk_len(w) if(recpos+w > line_len) PUT('\n');
582509Sdlw 
592509Sdlw typedef union
602509Sdlw {	short	flshort;
612509Sdlw 	ftnint	flint;
622509Sdlw 	float	flreal;
632509Sdlw 	double	fldouble;
642509Sdlw } flex;
652509Sdlw 
662509Sdlw extern int (*lioproc)();
672509Sdlw extern flag leof;
682509Sdlw extern ioflag lquit,l_first;
692509Sdlw extern int lcount,line_len;
70