ftp.nice.ch/pub/next/developer/languages/lisp/AKCL.1.599.s.tar.gz#/akcl-1-599/cmpnew/cmpcatch.c

This is cmpcatch.c in view mode; [Download] [Up]

#include <cmpinclude.h>
#include "cmpcatch.h"
init_cmpcatch(){do_init(VV);}
/*	local entry for function C1CATCH	*/

static object LI1(V2)

register object V2;
{	 VMB1 VMS1 VMV1
TTL:;
	{object V3;
	object V4;
	V3= (VFUN_NARGS=2,(*(LnkLI22))(VV[0],Ct));
	V4= Cnil;
	setq(VV[1],number_plus(symbol_value(VV[1]),small_fixnum(1)));
	if(!(endp((V2)))){
	goto T5;}
	(void)((*(LnkLI23))(VV[2],small_fixnum(1),small_fixnum(0)));
T5:;
	V4= (*(LnkLI24))(car((V2)));
	(void)((*(LnkLI25))((V3),cadr((V4))));
	V2= (*(LnkLI26))(cdr((V2)));
	(void)((*(LnkLI25))((V3),cadr((V2))));
	{object V5 = list(4,VV[2],(V3),(V4),(V2));
	VMR1(V5)}}
}
/*	local entry for function C2CATCH	*/

static object LI2(V8,V9)

object V8;object V9;
{	 VMB2 VMS2 VMV2
	bds_check;
TTL:;
	bds_bind(VV[3],symbol_value(VV[3]));
	bds_bind(VV[4],VV[5]);
	V10= (*(LnkLI27))((V8));
	bds_unwind1;
	princ_str("\n	if(nlj_active)",VV[6]);
	princ_str("\n	{nlj_active=FALSE;frs_pop();",VV[6]);
	(void)((VFUN_NARGS=2,(*(LnkLI28))(VV[7],VV[8])));
	princ_char(125,VV[6]);
	princ_str("\n	else{",VV[6]);
	base[1]= make_cons(VV[10],symbol_value(VV[9]));
	bds_bind(VV[9],base[1]);
	base[2]= (V9);
	vs_top=(vs_base=base+2)+1;
	(void) (*Lnk29)();
	vs_top=sup;
	bds_unwind1;
	princ_char(125,VV[6]);
	{object V11 = Cnil;
	bds_unwind1;
	VMR2(V11)}
}
/*	local entry for function SET-PUSH-CATCH-FRAME	*/

static object LI3(V13)

object V13;
{	 VMB3 VMS3 VMV3
TTL:;
	princ_str("\n	frs_push(FRS_CATCH,",VV[6]);
	(void)((*(LnkLI30))((V13)));
	princ_str(");",VV[6]);
	{object V14 = Cnil;
	VMR3(V14)}
}
/*	local entry for function C1UNWIND-PROTECT	*/

static object LI4(V16)

register object V16;
{	 VMB4 VMS4 VMV4
	bds_check;
TTL:;
	{object V17;
	object V18;
	V17= (VFUN_NARGS=2,(*(LnkLI22))(VV[0],Ct));
	V18= Cnil;
	setq(VV[1],number_plus(symbol_value(VV[1]),small_fixnum(1)));
	if(!(endp((V16)))){
	goto T35;}
	(void)((*(LnkLI23))(VV[11],small_fixnum(1),small_fixnum(0)));
T35:;
	base[0]= make_cons(VV[13],symbol_value(VV[12]));
	base[1]= make_cons(VV[13],symbol_value(VV[14]));
	base[2]= make_cons(VV[13],symbol_value(VV[15]));
	bds_bind(VV[12],base[0]);
	bds_bind(VV[14],base[1]);
	bds_bind(VV[15],base[2]);
	V19= (*(LnkLI24))(car((V16)));
	bds_unwind1;
	bds_unwind1;
	bds_unwind1;
	V18= V19;
	(void)((*(LnkLI25))((V17),cadr((V18))));
	V16= (*(LnkLI26))(cdr((V16)));
	(void)((*(LnkLI25))((V17),cadr((V16))));
	{object V20 = list(4,VV[11],(V17),(V18),(V16));
	VMR4(V20)}}
}
/*	local entry for function C2UNWIND-PROTECT	*/

static object LI5(V23,V24)

object V23;object V24;
{	 VMB5 VMS5 VMV5
	bds_check;
TTL:;
	{object V25;
	object V26;
	bds_bind(VV[3],symbol_value(VV[3]));
	V25= list(2,VV[16],(*(LnkLI31))());
	V26= Cnil;
	princ_str("\n	{object tag;frame_ptr fr;object p;bool active;",VV[6]);
	princ_str("\n	frs_push(FRS_PROTECT,Cnil);",VV[6]);
	princ_str("\n	if(nlj_active){tag=nlj_tag;fr=nlj_fr;active=TRUE;}",VV[6]);
	princ_str("\n	else{",VV[6]);
	{object V27;
	V27= Cnil;
	bds_bind(VV[4],VV[17]);
	(void)((*(LnkLI27))((V23)));
	V26= (V27);
	bds_unwind1;}
	princ_str("\n	active=FALSE;}",VV[6]);
	princ_str("\n	",VV[6]);
	(void)((*(LnkLI30))((V25)));
	princ_str("=Cnil;",VV[6]);
	princ_str("\n	while(vs_base<vs_top)",VV[6]);
	princ_str("\n	{",VV[6]);
	(void)((*(LnkLI30))((V25)));
	princ_str("=MMcons(vs_top[-1],",VV[6]);
	(void)((*(LnkLI30))((V25)));
	princ_str(");vs_top--;}",VV[6]);
	princ_str("\n	",VV[6]);
	(void)((*(LnkLI32))());
	princ_str("\n	nlj_active=FALSE;frs_pop();",VV[6]);
	bds_bind(VV[4],VV[18]);
	V28= (*(LnkLI27))((V24));
	bds_unwind1;
	princ_str("\n	vs_base=vs_top=base+",VV[6]);
	(void)((*(LnkLI30))((VV[3]->s.s_dbind)));
	princ_char(59,VV[6]);
	setq(VV[19],Ct);
	princ_str("\n	for(p= ",VV[6]);
	(void)((*(LnkLI30))((V25)));
	princ_str(";!endp(p);p=MMcdr(p))vs_push(MMcar(p));",VV[6]);
	princ_str("\n	if(active)unwind(fr,tag);else{",VV[6]);
	if(((V26))==Cnil){
	goto T95;}
	V29= car((V26));
	goto T93;
T95:;
	V29= Cnil;
T93:;
	(void)((VFUN_NARGS=3,(*(LnkLI28))(VV[7],Cnil,V29)));
	princ_str("}}",VV[6]);
	{object V30 = Cnil;
	bds_unwind1;
	VMR5(V30)}}
}
/*	local entry for function C1THROW	*/

static object LI6(V32)

register object V32;
{	 VMB6 VMS6 VMV6
TTL:;
	{object V33;
	object V34;
	V33= (VFUN_NARGS=0,(*(LnkLI22))());
	V34= Cnil;
	if(endp((V32))){
	goto T101;}
	if(!(endp(cdr((V32))))){
	goto T100;}
T101:;
	V35 = make_fixnum(length((V32)));
	(void)((*(LnkLI23))(VV[20],small_fixnum(2),V35));
T100:;
	if(endp(cddr((V32)))){
	goto T105;}
	V36 = make_fixnum(length((V32)));
	(void)((*(LnkLI33))(VV[20],small_fixnum(2),V36));
T105:;
	V34= (*(LnkLI24))(car((V32)));
	(void)((*(LnkLI25))((V33),cadr((V34))));
	V32= (*(LnkLI24))(cadr((V32)));
	(void)((*(LnkLI25))((V33),cadr((V32))));
	{object V37 = list(4,VV[20],(V33),(V34),(V32));
	VMR6(V37)}}
}
/*	local entry for function C2THROW	*/

static object LI7(V40,V41)

register object V40;object V41;
{	 VMB7 VMS7 VMV7
	bds_check;
TTL:;
	{object V42;
	bds_bind(VV[3],symbol_value(VV[3]));
	V42= Cnil;
	princ_str("\n	{frame_ptr fr;",VV[6]);
	{object V43= car((V40));
	if((V43!= VV[34]))goto T118;
	V42= caddr((V40));
	goto T117;
T118:;
	if((V43!= VV[21]))goto T120;
	V42= make_cons(VV[21],caddr((V40)));
	goto T117;
T120:;
	V42= list(2,VV[16],(*(LnkLI31))());
	bds_bind(VV[4],(V42));
	V44= (*(LnkLI27))((V40));
	bds_unwind1;}
T117:;
	princ_str("\n	fr=frs_sch_catch(",VV[6]);
	(void)((*(LnkLI30))((V42)));
	princ_str(");",VV[6]);
	princ_str("\n	if(fr==NULL) FEerror(\"The tag ~s is undefined.\",1,",VV[6]);
	(void)((*(LnkLI30))((V42)));
	princ_str(");",VV[6]);
	bds_bind(VV[4],VV[17]);
	V45= (*(LnkLI27))((V41));
	bds_unwind1;
	princ_str("\n	unwind(fr,",VV[6]);
	(void)((*(LnkLI30))((V42)));
	princ_str(");}",VV[6]);
	{object V46 = Cnil;
	bds_unwind1;
	VMR7(V46)}}
}
static object  LnkTLI33(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[33],&LnkLI33,3,ap);} /* TOO-MANY-ARGS */
static object  LnkTLI32(){return call_proc0(VV[32],&LnkLI32);} /* RESET-TOP */
static object  LnkTLI31(){return call_proc0(VV[31],&LnkLI31);} /* VS-PUSH */
static object  LnkTLI30(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[30],&LnkLI30,1,ap);} /* WT1 */
static LnkT29(){ call_or_link(VV[29],&Lnk29);} /* C2EXPR */
static object  LnkTLI28(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_vproc(VV[28],&LnkLI28,ap);} /* UNWIND-EXIT */
static object  LnkTLI27(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[27],&LnkLI27,1,ap);} /* C2EXPR* */
static object  LnkTLI26(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[26],&LnkLI26,1,ap);} /* C1PROGN */
static object  LnkTLI25(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[25],&LnkLI25,2,ap);} /* ADD-INFO */
static object  LnkTLI24(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[24],&LnkLI24,1,ap);} /* C1EXPR */
static object  LnkTLI23(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[23],&LnkLI23,3,ap);} /* TOO-FEW-ARGS */
static object  LnkTLI22(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_vproc(VV[22],&LnkLI22,ap);} /* MAKE-INFO */

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.