/[gcl]/gcl/lsp/destructuring_bind.c
ViewVC logotype

Diff of /gcl/lsp/destructuring_bind.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by camm, Thu May 16 21:37:27 2002 UTC revision 1.6 by camm, Mon May 20 02:22:17 2002 UTC
# Line 7  init_destructuring_bind(){do_init(VV);} Line 7  init_destructuring_bind(){do_init(VV);}
7  static L1()  static L1()
8  {register object *base=vs_base;  {register object *base=vs_base;
9          register object *sup=base+VM1; VC1          register object *sup=base+VM1; VC1
10          vs_reserve(VM1);          vs_check;
11          bds_check;          bds_check;
12          {object V1;          {object V1;
13          object V2;          object V2;
# Line 18  static L1() Line 18  static L1()
18          object V7;          object V7;
19          object V8;          object V8;
20          object V9;          object V9;
         if(vs_top-vs_base<5) too_few_arguments();  
21          parse_key(vs_base+5,FALSE,FALSE,5,VV[75],VV[76],VV[77],VV[78],VV[79]);          parse_key(vs_base+5,FALSE,FALSE,5,VV[75],VV[76],VV[77],VV[78],VV[79]);
22          V1=(base[0]);          V1=(base[0]);
23          V2=(base[1]);          V2=(base[1]);
# Line 141  T32:; Line 140  T32:;
140  static L2()  static L2()
141  {register object *base=vs_base;  {register object *base=vs_base;
142          register object *sup=base+VM2; VC2          register object *sup=base+VM2; VC2
143          vs_reserve(VM2);          vs_check;
144          {object V22;          {object V22;
145          object V23;          object V23;
146          register object V24;          register object V24;
# Line 150  static L2() Line 149  static L2()
149          object V27;          object V27;
150          object V28;          object V28;
151          object V29;          object V29;
         if(vs_top-vs_base<5) too_few_arguments();  
         if(vs_top-vs_base>8) too_many_arguments();  
152          V22=(base[0]);          V22=(base[0]);
153          V23=(base[1]);          V23=(base[1]);
154          V24=(base[2]);          V24=(base[2]);
# Line 206  T57:; Line 203  T57:;
203          goto T58;}          goto T58;}
204          goto T52;          goto T52;
205  T58:;  T58:;
206          if(!((car((V39)))==(VV[12]))){          if(!((CMPcar((V39)))==(VV[12]))){
207          goto T62;}          goto T62;}
208          goto T55;          goto T55;
209  T62:;  T62:;
210          V39= cdr((V39));          V39= CMPcdr((V39));
211          goto T57;}          goto T57;}
212  T55:;  T55:;
213          if((car((V22)))==(VV[12])){          if((CMPcar((V22)))==(VV[12])){
214          goto T52;}          goto T52;}
215          base[8]= VV[13];          base[8]= VV[13];
216          base[9]= (V25);          base[9]= (V25);
# Line 240  T78:; Line 237  T78:;
237          goto T71;          goto T71;
238  T74:;  T74:;
239          {register object V41;          {register object V41;
240          V41= car((V40));          V41= CMPcar((V40));
241          if(!(((V41))==(VV[12]))){          if(!(((V41))==(VV[12]))){
242          goto T89;}          goto T89;}
243          if((cdr((V40)))==Cnil){          if((CMPcdr((V40)))==Cnil){
244          goto T92;}          goto T92;}
245          if(!(type_of(cadr((V40)))==t_symbol)){          if(!(type_of(CMPcadr((V40)))==t_symbol)){
246          goto T92;}          goto T92;}
247          V40= cdr((V40));          V40= CMPcdr((V40));
248          base[8]= car((V40));          base[8]= CMPcar((V40));
249          base[9]= (V23);          base[9]= (V23);
250          base[10]= Cnil;          base[10]= Cnil;
251          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
# Line 282  T109:; Line 279  T109:;
279          Lerror();          Lerror();
280          vs_top=sup;          vs_top=sup;
281  T107:;  T107:;
282          if((cdr((V40)))==Cnil){          if((CMPcdr((V40)))==Cnil){
283          goto T117;}          goto T117;}
284          if(!(type_of(cadr((V40)))==t_symbol)){          if(!(type_of(CMPcadr((V40)))==t_symbol)){
285          goto T117;}          goto T117;}
286          V40= cdr((V40));          V40= CMPcdr((V40));
287          base[8]= car((V40));          base[8]= CMPcar((V40));
288          base[9]= (V29);          base[9]= (V29);
289          base[10]= Cnil;          base[10]= Cnil;
290          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
# Line 309  T105:; Line 306  T105:;
306          if(!(((V41))==(VV[20]))){          if(!(((V41))==(VV[20]))){
307          goto T132;}          goto T132;}
308  T131:;  T131:;
309          if((cdr((V40)))==Cnil){          if((CMPcdr((V40)))==Cnil){
310          goto T137;}          goto T137;}
311          if(!(type_of(cadr((V40)))==t_symbol)){          if(!(type_of(CMPcadr((V40)))==t_symbol)){
312          goto T137;}          goto T137;}
313          V40= cdr((V40));          V40= CMPcdr((V40));
314          V36= Ct;          V36= Ct;
315          base[8]= car((V40));          base[8]= CMPcar((V40));
316          base[9]= (V30);          base[9]= (V30);
317          base[10]= Cnil;          base[10]= Cnil;
318          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
# Line 323  T131:; Line 320  T131:;
320          vs_top=sup;          vs_top=sup;
321          goto T86;          goto T86;
322  T137:;  T137:;
323          if((cdr((V40)))==Cnil){          if((CMPcdr((V40)))==Cnil){
324          goto T149;}          goto T149;}
325          if(!(type_of(cadr((V40)))==t_cons)){          if(!(type_of(CMPcadr((V40)))==t_cons)){
326          goto T149;}          goto T149;}
327          if(!(type_of(caadr((V40)))==t_symbol)){          if(!(type_of(CMPcaadr((V40)))==t_symbol)){
328          goto T149;}          goto T149;}
329          V40= cdr((V40));          V40= CMPcdr((V40));
330          V36= Ct;          V36= Ct;
331          {object V42;          {object V42;
332          object V43;          object V43;
333          object V44;          object V44;
334          object V45;          object V45;
335          V42= caar((V40));          V42= CMPcaar((V40));
336          V43= cadar((V40));          V43= CMPcadar((V40));
337          V44= caddar((V40));          V44= CMPcaddar((V40));
338          vs_base=vs_top;          vs_base=vs_top;
339          Lgensym();          Lgensym();
340          vs_top=sup;          vs_top=sup;
# Line 398  T190:; Line 395  T190:;
395          Lgensym();          Lgensym();
396          vs_top=sup;          vs_top=sup;
397          V35= vs_base[0];          V35= vs_base[0];
398          setq(VV[5],make_cons((V35),symbol_value(VV[5])));          (VV[5]->s.s_dbind)= make_cons((V35),(VV[5]->s.s_dbind));
399          V36= Ct;          V36= Ct;
400          base[8]= (V35);          base[8]= (V35);
401          base[9]= (V30);          base[9]= (V30);
# Line 460  T219:; Line 457  T219:;
457          Lcerror();          Lcerror();
458          vs_top=sup;          vs_top=sup;
459  T241:;  T241:;
460          base[8]= car((V41));          base[8]= CMPcar((V41));
461          base[9]= cadr((V41));          base[9]= CMPcadr((V41));
462          base[10]= caddr((V41));          base[10]= CMPcaddr((V41));
463          base[11]= list(2,VV[37],list(2,VV[38],(V30)));          base[11]= list(2,VV[37],list(2,VV[38],(V30)));
464          base[12]= list(2,VV[23],(V30));          base[12]= list(2,VV[23],(V30));
465          base[13]= (V24);          base[13]= (V24);
# Line 480  T240:; Line 477  T240:;
477          object V49;          object V49;
478          object V50;          object V50;
479          object V51;          object V51;
480          V48= (type_of(car((V41)))==t_cons?Ct:Cnil);          V48= (type_of(CMPcar((V41)))==t_cons?Ct:Cnil);
481          if(((V48))==Cnil){          if(((V48))==Cnil){
482          goto T263;}          goto T263;}
483          V49= cadar((V41));          V49= CMPcadar((V41));
484          goto T261;          goto T261;
485  T263:;  T263:;
486          V49= car((V41));          V49= CMPcar((V41));
487  T261:;  T261:;
488          if(((V48))==Cnil){          if(((V48))==Cnil){
489          goto T267;}          goto T267;}
490          V50= caar((V41));          V50= CMPcaar((V41));
491          goto T265;          goto T265;
492  T267:;  T267:;
493          base[12]= (V49);          base[12]= (V49);
# Line 499  T267:; Line 496  T267:;
496          vs_top=sup;          vs_top=sup;
497          V50= vs_base[0];          V50= vs_base[0];
498  T265:;  T265:;
499          V51= caddr((V41));          V51= CMPcaddr((V41));
500          base[12]= (V49);          base[12]= (V49);
501          base[13]= cadr((V41));          base[13]= CMPcadr((V41));
502          base[14]= (V51);          base[14]= (V51);
503          base[15]= list(3,VV[39],list(2,VV[40],(V50)),(V35));          base[15]= list(3,VV[39],list(2,VV[40],(V50)),(V35));
504          base[16]= list(3,VV[41],list(2,VV[40],(V50)),(V35));          base[16]= list(3,VV[41],list(2,VV[40],(V50)),(V35));
# Line 515  T265:; Line 512  T265:;
512          goto T86;}          goto T86;}
513  T259:;  T259:;
514          if((V46!= VV[33]))goto T281;          if((V46!= VV[33]))goto T281;
515          base[8]= car((V41));          base[8]= CMPcar((V41));
516          base[9]= cadr((V41));          base[9]= CMPcadr((V41));
517          base[10]= Cnil;          base[10]= Cnil;
518          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
519          (void) (*Lnk81)();          (void) (*Lnk81)();
# Line 585  T286:; Line 582  T286:;
582          Lerror();          Lerror();
583          vs_top=sup;}          vs_top=sup;}
584  T86:;  T86:;
585          V40= cdr((V40));          V40= CMPcdr((V40));
586          goto T73;}          goto T73;}
587  T71:;  T71:;
588          if(((V36))!=Cnil){          if(((V36))!=Cnil){
# Line 649  T352:; Line 646  T352:;
646          V58= listA(5,(V26),VV[49],VV[50],/* INLINE-ARGS */V64,append(V65,/* INLINE-ARGS */V68));}          V58= listA(5,(V26),VV[49],VV[50],/* INLINE-ARGS */V64,append(V65,/* INLINE-ARGS */V68));}
647  T336:;  T336:;
648          V69= list(3,VV[43],/* INLINE-ARGS */V57,V58);          V69= list(3,VV[43],/* INLINE-ARGS */V57,V58);
649          setq(VV[2],make_cons(/* INLINE-ARGS */V69,symbol_value(VV[2])));          (VV[2]->s.s_dbind)= make_cons(/* INLINE-ARGS */V69,(VV[2]->s.s_dbind));
650  T324:;  T324:;
651          if(((V34))==Cnil){          if(((V34))==Cnil){
652          goto T356;}          goto T356;}
# Line 678  T366:; Line 675  T366:;
675  T364:;  T364:;
676          V77= list(4,VV[62],(V70),VV[63],(V71));          V77= list(4,VV[62],(V70),VV[63],(V71));
677          V78= list(4,VV[58],/* INLINE-ARGS */V72,/* INLINE-ARGS */V74,list(3,VV[60],(V70),listA(5,(V26),VV[61],VV[50],/* INLINE-ARGS */V75,append(V76,/* INLINE-ARGS */V77))));          V78= list(4,VV[58],/* INLINE-ARGS */V72,/* INLINE-ARGS */V74,list(3,VV[60],(V70),listA(5,(V26),VV[61],VV[50],/* INLINE-ARGS */V75,append(V76,/* INLINE-ARGS */V77))));
678          setq(VV[2],make_cons(/* INLINE-ARGS */V78,symbol_value(VV[2])));}          (VV[2]->s.s_dbind)= make_cons(/* INLINE-ARGS */V78,(VV[2]->s.s_dbind));}
679  T356:;  T356:;
680          base[8]= (V38);          base[8]= (V38);
681          base[9]= (V33);          base[9]= (V33);
# Line 698  T370:; Line 695  T370:;
695  static L3()  static L3()
696  {register object *base=vs_base;  {register object *base=vs_base;
697          register object *sup=base+VM3; VC3          register object *sup=base+VM3; VC3
698          vs_reserve(VM3);          vs_check;
699          {object V79;          {object V79;
700          object V80;          object V80;
701          object V81;          object V81;
702          object V82;          object V82;
703          object V83;          object V83;
704          object V84;          object V84;
         check_arg(6);  
705          V79=(base[0]);          V79=(base[0]);
706          V80=(base[1]);          V80=(base[1]);
707          V81=(base[2]);          V81=(base[2]);
# Line 733  T379:; Line 729  T379:;
729  T377:;  T377:;
730          V91= list(4,VV[69],(V85),VV[53],list(2,VV[40],(V81)));          V91= list(4,VV[69],(V85),VV[53],list(2,VV[40],(V81)));
731          V92= list(2,(V79),list(3,VV[65],/* INLINE-ARGS */V87,list(4,VV[66],/* INLINE-ARGS */V88,(V85),listA(5,(V84),VV[68],VV[50],/* INLINE-ARGS */V89,append(V90,/* INLINE-ARGS */V91)))));          V92= list(2,(V79),list(3,VV[65],/* INLINE-ARGS */V87,list(4,VV[66],/* INLINE-ARGS */V88,(V85),listA(5,(V84),VV[68],VV[50],/* INLINE-ARGS */V89,append(V90,/* INLINE-ARGS */V91)))));
732          setq(VV[4],make_cons(/* INLINE-ARGS */V92,symbol_value(VV[4])));          (VV[4]->s.s_dbind)= make_cons(/* INLINE-ARGS */V92,(VV[4]->s.s_dbind));
733          base[6]= symbol_value(VV[4]);          base[6]= (VV[4]->s.s_dbind);
734          vs_top=(vs_base=base+6)+1;          vs_top=(vs_base=base+6)+1;
735          return;}          return;}
736          }          }
# Line 744  T377:; Line 740  T377:;
740  static L4()  static L4()
741  {register object *base=vs_base;  {register object *base=vs_base;
742          register object *sup=base+VM4; VC4          register object *sup=base+VM4; VC4
743          vs_reserve(VM4);          vs_check;
744          {object V93;          {object V93;
745          object V94;          object V94;
746          object V95;          object V95;
747          object V96;          object V96;
748          object V97;          object V97;
         if(vs_top-vs_base<3) too_few_arguments();  
         if(vs_top-vs_base>5) too_many_arguments();  
749          V93=(base[0]);          V93=(base[0]);
750          V94=(base[1]);          V94=(base[1]);
751          V95=(base[2]);          V95=(base[2]);
# Line 766  static L4() Line 760  static L4()
760  T381:;  T381:;
761          V96= Cnil;          V96= Cnil;
762  T382:;  T382:;
763          V97= symbol_value(VV[0]);          V97= (VV[0]->s.s_dbind);
764  T383:;  T383:;
765          {object V98;          {object V98;
766          if(((V96))==Cnil){          if(((V96))==Cnil){
# Line 778  T388:; Line 772  T388:;
772  T386:;  T386:;
773          if(((V95))==Cnil){          if(((V95))==Cnil){
774          goto T391;}          goto T391;}
775          setq(VV[4],make_cons((V98),symbol_value(VV[4])));          (VV[4]->s.s_dbind)= make_cons((V98),(VV[4]->s.s_dbind));
776          base[5]= symbol_value(VV[4]);          base[5]= (VV[4]->s.s_dbind);
777          vs_top=(vs_base=base+5)+1;          vs_top=(vs_base=base+5)+1;
778          return;          return;
779  T391:;  T391:;
780          setq(VV[3],make_cons((V98),symbol_value(VV[3])));          (VV[3]->s.s_dbind)= make_cons((V98),(VV[3]->s.s_dbind));
781          base[5]= symbol_value(VV[3]);          base[5]= (VV[3]->s.s_dbind);
782          vs_top=(vs_base=base+5)+1;          vs_top=(vs_base=base+5)+1;
783          return;}          return;}
784          }          }
# Line 794  T391:; Line 788  T391:;
788  static L5()  static L5()
789  {register object *base=vs_base;  {register object *base=vs_base;
790          register object *sup=base+VM5; VC5          register object *sup=base+VM5; VC5
791          vs_reserve(VM5);          vs_check;
792          {register object V99;          {register object V99;
793          object V100;          object V100;
794          register object V101;          register object V101;
# Line 803  static L5() Line 797  static L5()
797          object V104;          object V104;
798          object V105;          object V105;
799          object V106;          object V106;
         check_arg(8);  
800          V99=(base[0]);          V99=(base[0]);
801          V100=(base[1]);          V100=(base[1]);
802          V101=(base[2]);          V101=(base[2]);
# Line 877  T422:; Line 870  T422:;
870  static L6()  static L6()
871  {register object *base=vs_base;  {register object *base=vs_base;
872          register object *sup=base+VM6; VC6          register object *sup=base+VM6; VC6
873          vs_reserve(VM6);          vs_check;
874          {object V108;          {object V108;
875          object V109;          object V109;
876          register object V110;          register object V110;
         if(vs_top-vs_base<2) too_few_arguments();  
         if(vs_top-vs_base>3) too_many_arguments();  
877          V108=(base[0]);          V108=(base[0]);
878          V109=(base[1]);          V109=(base[1]);
879          vs_base=vs_base+2;          vs_base=vs_base+2;
# Line 900  T432:; Line 891  T432:;
891          {register object V113;          {register object V113;
892          V113= (V108);          V113= (V108);
893  T435:;  T435:;
894          if(!(endp((V113)))){          if(!(((V113))==Cnil)){
895          goto T436;}          goto T436;}
896          base[3]= (V113);          base[3]= (V113);
897          base[4]= nreverse((V111));          base[4]= nreverse((V111));
# Line 909  T435:; Line 900  T435:;
900          return;          return;
901  T436:;  T436:;
902          {register object V114;          {register object V114;
903          V114= car((V113));          V114= CMPcar((V113));
904          if(!(type_of((V114))==t_string)){          if(!(type_of((V114))==t_string)){
905          goto T446;}          goto T446;}
906          if((cdr((V113)))==Cnil){          if((CMPcdr((V113)))==Cnil){
907          goto T446;}          goto T446;}
908          if(((V110))==Cnil){          if(((V110))==Cnil){
909          goto T451;}          goto T451;}
# Line 928  T451:; Line 919  T451:;
919  T446:;  T446:;
920          if(!(type_of((V114))==t_cons)){          if(!(type_of((V114))==t_cons)){
921          goto T459;}          goto T459;}
922          if(type_of(car((V114)))==t_symbol){          if(type_of(CMPcar((V114)))==t_symbol){
923          goto T460;}          goto T460;}
924  T459:;  T459:;
925          base[3]= (V113);          base[3]= (V113);
# Line 937  T459:; Line 928  T459:;
928          vs_top=(vs_base=base+3)+3;          vs_top=(vs_base=base+3)+3;
929          return;          return;
930  T460:;  T460:;
931          if(!((car((V114)))==(VV[7]))){          if(!((CMPcar((V114)))==(VV[7]))){
932          goto T468;}          goto T468;}
933          V111= make_cons((V114),(V111));          V111= make_cons((V114),(V111));
934          goto T443;          goto T443;
# Line 948  T468:; Line 939  T468:;
939          vs_top=(vs_base=base+3)+3;          vs_top=(vs_base=base+3)+3;
940          return;}          return;}
941  T443:;  T443:;
942          V113= cdr((V113));          V113= CMPcdr((V113));
943          goto T435;}}          goto T435;}}
944          }          }
945  }  }
# Line 957  T443:; Line 948  T443:;
948  static L7()  static L7()
949  {register object *base=vs_base;  {register object *base=vs_base;
950          register object *sup=base+VM7; VC7          register object *sup=base+VM7; VC7
951          vs_reserve(VM7);          vs_check;
         check_arg(2);  
952          vs_top=sup;          vs_top=sup;
953          {object V115=base[0]->c.c_cdr;          {object V115=base[0]->c.c_cdr;
         if(endp(V115))invalid_macro_call();  
954          base[2]= (V115->c.c_car);          base[2]= (V115->c.c_car);
955          V115=V115->c.c_cdr;          V115=V115->c.c_cdr;
         if(endp(V115))invalid_macro_call();  
956          base[3]= (V115->c.c_car);          base[3]= (V115->c.c_car);
957          V115=V115->c.c_cdr;          V115=V115->c.c_cdr;
958          base[4]= V115;}          base[4]= V115;}

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26