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

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

/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "seq.h"
init_seq(start,size,data)char *start;int size;object data;
{	register object *base=vs_top;register object *sup=base+VM2;vs_check;
	Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
	base[0]= VV[0];
	(void)simple_symlispcall_no_event(VV[16],base+0,1);
	MF(VV[17],L2,start,size,data);
	MF(VV[18],L3,start,size,data);
	MF(VV[19],L4,start,size,data);
	MF(VV[20],L5,start,size,data);
	MF(VV[21],L6,start,size,data);
	MF(VV[22],L7,start,size,data);
	MF(VV[23],L8,start,size,data);
	vs_top=vs_base=base;
}
/*	function definition for MAKE-SEQUENCE	*/

static L2()
{	register object *base=vs_base;
	register object *sup=base+VM3;
	vs_reserve(VM3);
	if(vs_top-vs_base<2) too_few_arguments();
	parse_key(vs_base+2,FALSE,FALSE,1,VV[2]);
	vs_top=sup;
	base[4]= Cnil;
	base[5]= Cnil;
	if(!(base[0]==VV[1])){
	goto T6;}
	if((base[3])==Cnil){
	goto T9;}
	base[6]= base[1];
	base[7]= VV[2];
	base[8]= base[2];
	vs_top=(vs_base=base+6)+3;
	Lmake_list();
	return;
T9:;
	base[6]= base[1];
	vs_top=(vs_base=base+6)+1;
	Lmake_list();
	return;
T6:;
	if(base[0]==VV[3]){
	goto T15;}
	if(!(base[0]==VV[4])){
	goto T16;}
T15:;
	base[4]= VV[5];
	goto T4;
T16:;
	if(base[0]==VV[6]){
	goto T20;}
	if(!(base[0]==VV[7])){
	goto T21;}
T20:;
	base[4]= VV[8];
	goto T4;
T21:;
	if(base[0]==VV[9]){
	goto T25;}
	if(!(base[0]==VV[10])){
	goto T26;}
T25:;
	base[4]= Ct;
	goto T4;
T26:;
	base[6]= base[0];
	base[0]= simple_symlispcall_no_event(VV[24],base+6,1);
	if(!(car(base[0])==VV[1])){
	goto T33;}
	if((base[3])==Cnil){
	goto T37;}
	base[6]= base[1];
	base[7]= VV[2];
	base[8]= base[2];
	vs_top=(vs_base=base+6)+3;
	Lmake_list();
	return;
T37:;
	base[6]= base[1];
	vs_top=(vs_base=base+6)+1;
	Lmake_list();
	return;
T33:;
	if(car(base[0])==VV[11]){
	goto T43;}
	if(car(base[0])==VV[12]){
	goto T43;}
	base[6]= VV[13];
	base[7]= base[0];
	vs_top=(vs_base=base+6)+2;
	Lerror();
	vs_top=sup;
T43:;
	base[6]= cadr(base[0]);
	if(base[6]==Cnil)goto T50;
	base[4]= base[6];
	goto T4;
T50:;
	base[4]= Ct;
T4:;
	base[6]= base[4];
	base[7]= base[1];
	base[8]= Cnil;
	base[9]= Cnil;
	base[10]= Cnil;
	base[11]= Cnil;
	base[12]= Cnil;
	vs_top=(vs_base=base+6)+7;
	siLmake_vector();
	vs_top=sup;
	base[5]= vs_base[0];
	if((base[3])==Cnil){
	goto T61;}
	{int V1;
	int V2;
	V1= 0;
	V2= fix(base[1]);
T67:;
	if(!((V1)>=(V2))){
	goto T68;}
	goto T61;
T68:;
	(void)(elt_set(base[5],V1,base[2]));
	V1= (V1)+1;
	goto T67;}
T61:;
	vs_top=(vs_base=base+5)+1;
	return;
}
/*	function definition for CONCATENATE	*/

static L3()
{	register object *base=vs_base;
	register object *sup=base+VM4;
	vs_reserve(VM4);
	if(vs_top-vs_base<1) too_few_arguments();
	vs_base=vs_base+1;
	vs_top[0]=Cnil;
	{object *p=vs_top;
	 for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
	vs_top=sup;
	{int V3;
	base[4]= base[0];
	{object V4;
	{object V5;
	object V6= base[1];
	if(endp(V6)){
	V4= Cnil;
	goto T79;}
	base[6]=V5=MMcons(Cnil,Cnil);
T80:;
	base[7]= (V6->c.c_car);
	vs_top=(vs_base=base+7)+1;
	Llength();
	vs_top=sup;
	(V5->c.c_car)= vs_base[0];
	if(endp(V6=MMcdr(V6))){
	V4= base[6];
	goto T79;}
	V5=MMcdr(V5)=MMcons(Cnil,Cnil);
	goto T80;}
T79:;
	 vs_top=base+6;
	 while(!endp(V4))
	 {vs_push(car(V4));V4=cdr(V4);}
	vs_base=base+6;}
	Lplus();
	vs_top=sup;
	base[5]= vs_base[0];
	vs_top=(vs_base=base+4)+2;
	L2();
	vs_top=sup;
	base[2]= vs_base[0];
	V3= 0;
	base[3]= base[1];
T85:;
	if((base[3])!=Cnil){
	goto T86;}
	vs_top=(vs_base=base+2)+1;
	return;
T86:;
	{int V7;
	int V8;
	V7= 0;
	V8= length(car(base[3]));
T94:;
	if(!((V7)>=(V8))){
	goto T95;}
	goto T90;
T95:;
	base[4]= elt(car(base[3]),V7);
	(void)(elt_set(base[2],V3,base[4]));
	V3= (V3)+(1);
	V7= (V7)+1;
	goto T94;}
T90:;
	base[3]= cdr(base[3]);
	goto T85;}
}
/*	function definition for MAP	*/

static L4()
{	register object *base=vs_base;
	register object *sup=base+VM5;
	vs_reserve(VM5);
	if(vs_top-vs_base<3) too_few_arguments();
	vs_base=vs_base+3;
	vs_top[0]=Cnil;
	{object *p=vs_top;
	 for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
	vs_top=sup;
	base[3]= make_cons(base[2],base[3]);
	{object V9;
	{object V10;
	object V11= base[3];
	if(endp(V11)){
	V9= Cnil;
	goto T111;}
	base[5]=V10=MMcons(Cnil,Cnil);
T112:;
	base[6]= (V11->c.c_car);
	vs_top=(vs_base=base+6)+1;
	Llength();
	vs_top=sup;
	(V10->c.c_car)= vs_base[0];
	if(endp(V11=MMcdr(V11))){
	V9= base[5];
	goto T111;}
	V10=MMcdr(V10)=MMcons(Cnil,Cnil);
	goto T112;}
T111:;
	 vs_top=base+5;
	 while(!endp(V9))
	 {vs_push(car(V9));V9=cdr(V9);}
	vs_base=base+5;}
	Lmin();
	vs_top=sup;
	base[4]= vs_base[0];
	if((base[0])!=Cnil){
	goto T116;}
	{int V12;
	int V13;
	V12= 0;
	V13= fix(base[4]);
T121:;
	if(!((V12)>=(V13))){
	goto T122;}
	base[5]= Cnil;
	vs_top=(vs_base=base+5)+1;
	return;
T122:;
	base[5]= base[1];
	{object V14;
	{object V15;
	object V16= base[3];
	if(endp(V16)){
	V14= Cnil;
	goto T128;}
	base[6]=V15=MMcons(Cnil,Cnil);
T129:;
	(V15->c.c_car)= elt((V16->c.c_car),V12);
	if(endp(V16=MMcdr(V16))){
	V14= base[6];
	goto T128;}
	V15=MMcdr(V15)=MMcons(Cnil,Cnil);
	goto T129;}
T128:;
	 vs_top=base+6;
	 while(!endp(V14))
	 {vs_push(car(V14));V14=cdr(V14);}
	vs_base=base+6;}
	super_funcall_no_event(base[5]);
	vs_top=sup;
	V12= (V12)+1;
	goto T121;}
T116:;
	base[6]= base[0];
	base[7]= base[4];
	vs_top=(vs_base=base+6)+2;
	L2();
	vs_top=sup;
	base[5]= vs_base[0];
	{int V17;
	int V18;
	V17= 0;
	V18= fix(base[4]);
T140:;
	if(!((V17)>=(V18))){
	goto T141;}
	vs_top=(vs_base=base+5)+1;
	return;
T141:;
	base[7]= base[1];
	{object V19;
	{object V20;
	object V21= base[3];
	if(endp(V21)){
	V19= Cnil;
	goto T148;}
	base[8]=V20=MMcons(Cnil,Cnil);
T149:;
	(V20->c.c_car)= elt((V21->c.c_car),V17);
	if(endp(V21=MMcdr(V21))){
	V19= base[8];
	goto T148;}
	V20=MMcdr(V20)=MMcons(Cnil,Cnil);
	goto T149;}
T148:;
	 vs_top=base+8;
	 while(!endp(V19))
	 {vs_push(car(V19));V19=cdr(V19);}
	vs_base=base+8;}
	super_funcall_no_event(base[7]);
	vs_top=sup;
	base[6]= vs_base[0];
	(void)(elt_set(base[5],V17,base[6]));
	V17= (V17)+1;
	goto T140;}
}
/*	function definition for SOME	*/

static L5()
{	register object *base=vs_base;
	register object *sup=base+VM6;
	vs_reserve(VM6);
	if(vs_top-vs_base<2) too_few_arguments();
	vs_base=vs_base+2;
	vs_top[0]=Cnil;
	{object *p=vs_top;
	 for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
	vs_top=sup;
	base[2]= make_cons(base[1],base[2]);
	{int V22;
	int V23;
	V22= 0;
	{object V24;
	{object V25;
	object V26= base[2];
	if(endp(V26)){
	V24= Cnil;
	goto T158;}
	base[3]=V25=MMcons(Cnil,Cnil);
T159:;
	base[4]= (V26->c.c_car);
	vs_top=(vs_base=base+4)+1;
	Llength();
	vs_top=sup;
	(V25->c.c_car)= vs_base[0];
	if(endp(V26=MMcdr(V26))){
	V24= base[3];
	goto T158;}
	V25=MMcdr(V25)=MMcons(Cnil,Cnil);
	goto T159;}
T158:;
	 vs_top=base+3;
	 while(!endp(V24))
	 {vs_push(car(V24));V24=cdr(V24);}
	vs_base=base+3;}
	Lmin();
	vs_top=sup;
	V23= fix(vs_base[0]);
T163:;
	if(!((V22)>=(V23))){
	goto T164;}
	base[3]= Cnil;
	vs_top=(vs_base=base+3)+1;
	return;
T164:;
	base[4]= base[0];
	{object V27;
	{object V28;
	object V29= base[2];
	if(endp(V29)){
	V27= Cnil;
	goto T171;}
	base[5]=V28=MMcons(Cnil,Cnil);
T172:;
	(V28->c.c_car)= elt((V29->c.c_car),V22);
	if(endp(V29=MMcdr(V29))){
	V27= base[5];
	goto T171;}
	V28=MMcdr(V28)=MMcons(Cnil,Cnil);
	goto T172;}
T171:;
	 vs_top=base+5;
	 while(!endp(V27))
	 {vs_push(car(V27));V27=cdr(V27);}
	vs_base=base+5;}
	super_funcall_no_event(base[4]);
	vs_top=sup;
	base[3]= vs_base[0];
	if((base[3])==Cnil){
	goto T168;}
	vs_top=(vs_base=base+3)+1;
	return;
T168:;
	V22= (V22)+1;
	goto T163;}
}
/*	function definition for EVERY	*/

static L6()
{	register object *base=vs_base;
	register object *sup=base+VM7;
	vs_reserve(VM7);
	if(vs_top-vs_base<2) too_few_arguments();
	vs_base=vs_base+2;
	vs_top[0]=Cnil;
	{object *p=vs_top;
	 for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
	vs_top=sup;
	base[2]= make_cons(base[1],base[2]);
	{int V30;
	int V31;
	V30= 0;
	{object V32;
	{object V33;
	object V34= base[2];
	if(endp(V34)){
	V32= Cnil;
	goto T183;}
	base[3]=V33=MMcons(Cnil,Cnil);
T184:;
	base[4]= (V34->c.c_car);
	vs_top=(vs_base=base+4)+1;
	Llength();
	vs_top=sup;
	(V33->c.c_car)= vs_base[0];
	if(endp(V34=MMcdr(V34))){
	V32= base[3];
	goto T183;}
	V33=MMcdr(V33)=MMcons(Cnil,Cnil);
	goto T184;}
T183:;
	 vs_top=base+3;
	 while(!endp(V32))
	 {vs_push(car(V32));V32=cdr(V32);}
	vs_base=base+3;}
	Lmin();
	vs_top=sup;
	V31= fix(vs_base[0]);
T188:;
	if(!((V30)>=(V31))){
	goto T189;}
	base[3]= Ct;
	vs_top=(vs_base=base+3)+1;
	return;
T189:;
	base[3]= base[0];
	{object V35;
	{object V36;
	object V37= base[2];
	if(endp(V37)){
	V35= Cnil;
	goto T197;}
	base[4]=V36=MMcons(Cnil,Cnil);
T198:;
	(V36->c.c_car)= elt((V37->c.c_car),V30);
	if(endp(V37=MMcdr(V37))){
	V35= base[4];
	goto T197;}
	V36=MMcdr(V36)=MMcons(Cnil,Cnil);
	goto T198;}
T197:;
	 vs_top=base+4;
	 while(!endp(V35))
	 {vs_push(car(V35));V35=cdr(V35);}
	vs_base=base+4;}
	super_funcall_no_event(base[3]);
	vs_top=sup;
	if((vs_base[0])!=Cnil){
	goto T193;}
	base[3]= Cnil;
	vs_top=(vs_base=base+3)+1;
	return;
T193:;
	V30= (V30)+1;
	goto T188;}
}
/*	function definition for NOTANY	*/

static L7()
{	register object *base=vs_base;
	register object *sup=base+VM8;
	vs_reserve(VM8);
	if(vs_top-vs_base<2) too_few_arguments();
	vs_base=vs_base+2;
	vs_top[0]=Cnil;
	{object *p=vs_top;
	 for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
	vs_top=sup;
	base[4]= base[0];
	base[5]= base[1];
	{object V38;
	V38= base[2];
	 vs_top=base+6;
	 while(!endp(V38))
	 {vs_push(car(V38));V38=cdr(V38);}
	vs_base=base+4;}
	L5();
	vs_top=sup;
	base[3]= vs_base[0];
	base[4]= ((base[3])==Cnil?Ct:Cnil);
	vs_top=(vs_base=base+4)+1;
	return;
}
/*	function definition for NOTEVERY	*/

static L8()
{	register object *base=vs_base;
	register object *sup=base+VM9;
	vs_reserve(VM9);
	if(vs_top-vs_base<2) too_few_arguments();
	vs_base=vs_base+2;
	vs_top[0]=Cnil;
	{object *p=vs_top;
	 for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
	vs_top=sup;
	base[4]= base[0];
	base[5]= base[1];
	{object V39;
	V39= base[2];
	 vs_top=base+6;
	 while(!endp(V39))
	 {vs_push(car(V39));V39=cdr(V39);}
	vs_base=base+4;}
	L6();
	vs_top=sup;
	base[3]= vs_base[0];
	base[4]= ((base[3])==Cnil?Ct:Cnil);
	vs_top=(vs_base=base+4)+1;
	return;
}

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