1/*	copy of ftypes from the compiler */
2/* variable types
3 * numeric assumptions:
4 *	int < reals < complexes
5 *	TYDREAL-TYREAL = TYDCOMPLEX-TYCOMPLEX
6 */
7
8/* 0-10 retain their old (pre LOGICAL*1, etc.) */
9/* values to allow mixing old and new objects. */
10
11#define TYUNKNOWN 0
12#define TYADDR 1
13#define TYSHORT 2
14#define TYLONG 3
15#define TYREAL 4
16#define TYDREAL 5
17#define TYCOMPLEX 6
18#define TYDCOMPLEX 7
19#define TYLOGICAL 8
20#define TYCHAR 9
21#define TYSUBR 10
22#define TYINT1 11
23#define TYLOGICAL1 12
24#define TYLOGICAL2 13
25#ifdef Allow_TYQUAD
26#undef TYQUAD
27#define TYQUAD 14
28#endif
29
30#define	LINTW	24
31#define	LINE	80
32#define	LLOGW	2
33#ifdef Old_list_output
34#define	LLOW	1.0
35#define	LHIGH	1.e9
36#define	LEFMT	" %# .8E"
37#define	LFFMT	" %# .9g"
38#else
39#define	LGFMT	"%.9G"
40#endif
41/* LEFBL 20 should suffice; 24 overcomes a NeXT bug. */
42#define	LEFBL	24
43
44typedef union
45{
46	char	flchar;
47	short	flshort;
48	ftnint	flint;
49#ifdef Allow_TYQUAD
50	longint fllongint;
51#endif
52	real	flreal;
53	doublereal	fldouble;
54} flex;
55extern int f__scale;
56#ifdef KR_headers
57extern int (*f__lioproc)(), (*l_getc)(), (*l_ungetc)();
58extern int l_read(), l_write();
59#else
60#ifdef __cplusplus
61extern "C" {
62#endif
63extern int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint);
64extern int l_write(ftnint*, char*, ftnlen, ftnint);
65extern void x_wsne(cilist*);
66extern int c_le(cilist*), (*l_getc)(void), (*l_ungetc)(int,FILE*);
67extern int l_read(ftnint*,char*,ftnlen,ftnint);
68extern integer e_rsle(void), e_wsle(void), s_wsne(cilist*);
69extern int z_rnew(void);
70#ifdef __cplusplus
71	}
72#endif
73#endif
74extern ftnint L_len;
75