"$Header: lisp.c,v 1.3 83/11/26 12:00:58 sklower Exp $";
/* -[Sat Jan 29 13:24:33 1983 by jkf]-
* (c) copyright 1982, Regents of the University of California
/* main *****************************************************************/
/* Execution of the lisp system begins here. This is the top level */
/* executor which is an infinite loop. The structure is similar to */
lispval
matom(), Lapply();
extern struct frame
*errp
;
extern int holbeg
,holend
,usehole
;
#if sun_4_2 || sun_4_2beta
{extern char _sobuf
[]; setbuf(stdout
,_sobuf
);}
errp
= (struct frame
*)0;
errp
= Pushframe(F_RESET
,nil
,nil
);
case C_RESET
: break; /* what to do? */
case C_INITIAL
: break; /* first time */
clearerr(piport
= stdin
);
clearerr(poport
= stdout
);
np
++->val
= matom("top-level");
lispval
Lread(),Istsrch();
fputs((char *)Istsrch(matom("version"))->d
.cdr
->d
.cdr
->d
.cdr
,poport
);
if(vtemp
== eofa
) exit(0);
printr(eval(vtemp
),stdout
);
/* franzexit :: give up the ghost
* this function is called whenever one decides to kill this process.
* We clean up a bit then call then standard exit routine. C code
* in franz should never call exit() directly.
if(!fvirgin
) unlink(stabf
); /* give up any /tmp symbol tables */
/* is this something special?? _cleanup();