extern	struct	_iobuf {
int	_cnt;
unsigned char *_ptr;
unsigned char *_base;
int	_bufsiz;
short	_flag;
char	_file;	} _iob[];
typedef struct _iobuf FILE;
extern struct _iobuf	*fopen(const char *, const char *);
extern struct _iobuf	*fdopen(int, const char *);
extern struct _iobuf	*freopen(const char *, const char *, FILE *);
extern struct _iobuf	*popen(const char *, const char *);
extern struct _iobuf	*tmpfile(void);
extern long	ftell(FILE *);
extern char	*fgets(char *, int, FILE *);
extern char	*gets(char *);
extern char	*sprintf(char *, const char *, ...);
extern char	*ctermid(char *);
extern char	*cuserid(char *);
extern char	*tempnam(const char *, const char *);
extern char	*tmpnam(char *);
extern	char	_ctype_[];
typedef	int jmp_buf[9];
typedef	int sigjmp_buf[9+1];
int	setjmp(jmp_buf);
int	_setjmp(jmp_buf);
int	sigsetjmp(sigjmp_buf, int);
void	longjmp(jmp_buf, int);
void	_longjmp(jmp_buf, int);
void	siglongjmp(sigjmp_buf, int);
typedef struct node {
char n_type;	char n_flags;	union {	struct xsym {	struct node *xsy_plist;	struct node *xsy_value;	} n_xsym;
struct xsubr {	struct node *(*xsu_subr)();	} n_xsubr;
struct xlist {	struct node *xl_car;	struct node *xl_cdr;	} n_xlist;
struct xint {	long xi_int;	} n_xint;
struct xfloat {	float xf_float;	} n_xfloat;
struct xstr {	int xst_type;	char *xst_str;	} n_xstr;
struct xfptr {	struct _iobuf *xf_fp;	int xf_savech;	} n_xfptr;
struct xvect {	int xv_size;	struct node **xv_data;	} n_xvect;
} n_info;
} NODE;
typedef struct context {
int c_flags;	struct node *c_expr;	jmp_buf c_jmpbuf;	struct context *c_xlcontext;	struct node ***c_xlstack;	struct node *c_xlenv;	int c_xltrace;	} CONTEXT;
struct fdef {
char *f_name;	int f_type;	struct node *(*f_fcn)();	};
struct segment {
int sg_size;
struct segment *sg_next;
struct node sg_nodes[1];
};
extern struct node ***xlsave(NODE ** arg1, ...);	extern struct node *xleval();	extern struct node *xlapply();	extern struct node *xlevlist();	extern struct node *xlarg();	extern struct node *xlevarg();	extern struct node *xlmatch();	extern struct node *xlevmatch();	extern struct node *xlgetfile();	extern struct node *xlsend();	extern struct node *xlenter();	extern struct node *xlsenter();	extern struct node *xlmakesym();	extern struct node *xlframe();	extern struct node *xlgetvalue();	extern struct node *xlxgetvalue();	extern struct node *xlygetvalue();	extern struct node *cons();	extern struct node *consa();	extern struct node *consd();	extern struct node *cvsymbol();	extern struct node *cvcsymbol();	extern struct node *cvstring();	extern struct node *cvcstring();	extern struct node *cvfile();	extern struct node *cvsubr();	extern struct node *cvfixnum();	extern struct node *cvflonum();	extern struct node *newstring();	extern struct node *newvector();	extern struct node *newobject();	extern struct node *xlgetprop();	extern char *xlsymname();	extern void xlsetvalue();
extern void xlprint();
extern void xltest();
extern NODE *true,*s_dot;
extern NODE *s_quote,*s_function,*s_bquote,*s_comma,*s_comat;
extern NODE *s_lambda,*s_macro;
extern NODE *s_stdin,*s_stdout;
extern NODE *s_evalhook,*s_applyhook;
extern NODE *s_tracenable,*s_tlimit,*s_breakenable;
extern NODE *s_car,*s_cdr,*s_nth,*s_get,*s_svalue,*s_splist,*s_aref,*s_eql;
extern NODE *s_rtable,*k_wspace,*k_const,*k_nmacro,*k_tmacro;
extern NODE *k_test,*k_tnot,*k_optional,*k_rest,*k_aux;
extern NODE *a_subr,*a_fsubr;
extern NODE *a_list,*a_sym,*a_int,*a_float,*a_str,*a_obj,*a_fptr,*a_vect;
extern struct fdef ftab[];
xlinit(void)
{
struct fdef *fptr;
NODE *sym;
xlminit();	xlsinit();	xldinit();	xloinit();	for (fptr = ftab; fptr->f_name; fptr++)
xlsubr(fptr->f_name,fptr->f_type,fptr->f_fcn);
osfinit();
true = xlsenter("T");
((true)->n_info.n_xsym.xsy_value = (true));
s_dot	= xlsenter(".");
s_quote	= xlsenter("QUOTE");
s_function	= xlsenter("FUNCTION");
s_bquote	= xlsenter("BACKQUOTE");
s_comma	= xlsenter("COMMA");
s_comat	= xlsenter("COMMA-AT");
s_lambda	= xlsenter("LAMBDA");
s_macro	= xlsenter("MACRO");
s_eql	= xlsenter("EQL");
s_car	= xlsenter("CAR");
s_cdr	= xlsenter("CDR");
s_nth	= xlsenter("NTH");
s_get	= xlsenter("GET");
s_svalue	= xlsenter("SYMBOL-VALUE");
s_splist	= xlsenter("SYMBOL-PLIST");
s_aref	= xlsenter("AREF");
s_rtable	= xlsenter("*READTABLE*");
k_wspace	= xlsenter(":WHITE-SPACE");
k_const	= xlsenter(":CONSTITUENT");
k_nmacro	= xlsenter(":NMACRO");
k_tmacro	= xlsenter(":TMACRO");
xlrinit();
k_test	= xlsenter(":TEST");
k_tnot	= xlsenter(":TEST-NOT");
k_optional	= xlsenter("&OPTIONAL");
k_rest	= xlsenter("&REST");
k_aux	= xlsenter("&AUX");
s_stdin = xlsenter("*STANDARD-INPUT*");
((s_stdin)->n_info.n_xsym.xsy_value = (cvfile((&_iob[0]))));
s_stdout = xlsenter("*STANDARD-OUTPUT*");
((s_stdout)->n_info.n_xsym.xsy_value = (cvfile((&_iob[1]))));
s_evalhook = xlsenter("*EVALHOOK*");
((s_evalhook)->n_info.n_xsym.xsy_value = ((NODE *)0));
s_applyhook = xlsenter("*APPLYHOOK*");
((s_applyhook)->n_info.n_xsym.xsy_value = ((NODE *)0));
s_tracenable = xlsenter("*TRACENABLE*");
((s_tracenable)->n_info.n_xsym.xsy_value = ((NODE *)0));
s_tlimit = xlsenter("*TRACELIMIT*");
((s_tlimit)->n_info.n_xsym.xsy_value = ((NODE *)0));
s_breakenable = xlsenter("*BREAKENABLE*");
((s_breakenable)->n_info.n_xsym.xsy_value = (true));
sym = xlsenter("**Copyright-1985-by-David-Betz**");
((sym)->n_info.n_xsym.xsy_value = (true));
a_subr	= xlsenter(":SUBR");
a_fsubr	= xlsenter(":FSUBR");
a_list	= xlsenter(":CONS");
a_sym	= xlsenter(":SYMBOL");
a_int	= xlsenter(":FIXNUM");
a_float	= xlsenter(":FLONUM");
a_str	= xlsenter(":STRING");
a_obj	= xlsenter(":OBJECT");
a_fptr	= xlsenter(":FILE");
a_vect	= xlsenter(":ARRAY");
}
