/[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.6 by camm, Mon May 20 02:22:17 2002 UTC revision 1.7 by camm, Fri Jul 12 22:00:48 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_check;          vs_reserve(VM1);
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;
21            if(vs_top-vs_base<5) too_few_arguments();
22          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]);
23          V1=(base[0]);          V1=(base[0]);
24          V2=(base[1]);          V2=(base[1]);
# Line 140  T32:; Line 141  T32:;
141  static L2()  static L2()
142  {register object *base=vs_base;  {register object *base=vs_base;
143          register object *sup=base+VM2; VC2          register object *sup=base+VM2; VC2
144          vs_check;          vs_reserve(VM2);
145          {object V22;          {object V22;
146          object V23;          object V23;
147          register object V24;          register object V24;
# Line 149  static L2() Line 150  static L2()
150          object V27;          object V27;
151          object V28;          object V28;
152          object V29;          object V29;
153            if(vs_top-vs_base<5) too_few_arguments();
154            if(vs_top-vs_base>8) too_many_arguments();
155          V22=(base[0]);          V22=(base[0]);
156          V23=(base[1]);          V23=(base[1]);
157          V24=(base[2]);          V24=(base[2]);
# Line 203  T57:; Line 206  T57:;
206          goto T58;}          goto T58;}
207          goto T52;          goto T52;
208  T58:;  T58:;
209          if(!((CMPcar((V39)))==(VV[12]))){          if(!((car((V39)))==(VV[12]))){
210          goto T62;}          goto T62;}
211          goto T55;          goto T55;
212  T62:;  T62:;
213          V39= CMPcdr((V39));          V39= cdr((V39));
214          goto T57;}          goto T57;}
215  T55:;  T55:;
216          if((CMPcar((V22)))==(VV[12])){          if((car((V22)))==(VV[12])){
217          goto T52;}          goto T52;}
218          base[8]= VV[13];          base[8]= VV[13];
219          base[9]= (V25);          base[9]= (V25);
# Line 237  T78:; Line 240  T78:;
240          goto T71;          goto T71;
241  T74:;  T74:;
242          {register object V41;          {register object V41;
243          V41= CMPcar((V40));          V41= car((V40));
244          if(!(((V41))==(VV[12]))){          if(!(((V41))==(VV[12]))){
245          goto T89;}          goto T89;}
246          if((CMPcdr((V40)))==Cnil){          if((cdr((V40)))==Cnil){
247          goto T92;}          goto T92;}
248          if(!(type_of(CMPcadr((V40)))==t_symbol)){          if(!(type_of(cadr((V40)))==t_symbol)){
249          goto T92;}          goto T92;}
250          V40= CMPcdr((V40));          V40= cdr((V40));
251          base[8]= CMPcar((V40));          base[8]= car((V40));
252          base[9]= (V23);          base[9]= (V23);
253          base[10]= Cnil;          base[10]= Cnil;
254          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
# Line 279  T109:; Line 282  T109:;
282          Lerror();          Lerror();
283          vs_top=sup;          vs_top=sup;
284  T107:;  T107:;
285          if((CMPcdr((V40)))==Cnil){          if((cdr((V40)))==Cnil){
286          goto T117;}          goto T117;}
287          if(!(type_of(CMPcadr((V40)))==t_symbol)){          if(!(type_of(cadr((V40)))==t_symbol)){
288          goto T117;}          goto T117;}
289          V40= CMPcdr((V40));          V40= cdr((V40));
290          base[8]= CMPcar((V40));          base[8]= car((V40));
291          base[9]= (V29);          base[9]= (V29);
292          base[10]= Cnil;          base[10]= Cnil;
293          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
# Line 306  T105:; Line 309  T105:;
309          if(!(((V41))==(VV[20]))){          if(!(((V41))==(VV[20]))){
310          goto T132;}          goto T132;}
311  T131:;  T131:;
312          if((CMPcdr((V40)))==Cnil){          if((cdr((V40)))==Cnil){
313          goto T137;}          goto T137;}
314          if(!(type_of(CMPcadr((V40)))==t_symbol)){          if(!(type_of(cadr((V40)))==t_symbol)){
315          goto T137;}          goto T137;}
316          V40= CMPcdr((V40));          V40= cdr((V40));
317          V36= Ct;          V36= Ct;
318          base[8]= CMPcar((V40));          base[8]= car((V40));
319          base[9]= (V30);          base[9]= (V30);
320          base[10]= Cnil;          base[10]= Cnil;
321          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
# Line 320  T131:; Line 323  T131:;
323          vs_top=sup;          vs_top=sup;
324          goto T86;          goto T86;
325  T137:;  T137:;
326          if((CMPcdr((V40)))==Cnil){          if((cdr((V40)))==Cnil){
327          goto T149;}          goto T149;}
328          if(!(type_of(CMPcadr((V40)))==t_cons)){          if(!(type_of(cadr((V40)))==t_cons)){
329          goto T149;}          goto T149;}
330          if(!(type_of(CMPcaadr((V40)))==t_symbol)){          if(!(type_of(caadr((V40)))==t_symbol)){
331          goto T149;}          goto T149;}
332          V40= CMPcdr((V40));          V40= cdr((V40));
333          V36= Ct;          V36= Ct;
334          {object V42;          {object V42;
335          object V43;          object V43;
336          object V44;          object V44;
337          object V45;          object V45;
338          V42= CMPcaar((V40));          V42= caar((V40));
339          V43= CMPcadar((V40));          V43= cadar((V40));
340          V44= CMPcaddar((V40));          V44= caddar((V40));
341          vs_base=vs_top;          vs_base=vs_top;
342          Lgensym();          Lgensym();
343          vs_top=sup;          vs_top=sup;
# Line 395  T190:; Line 398  T190:;
398          Lgensym();          Lgensym();
399          vs_top=sup;          vs_top=sup;
400          V35= vs_base[0];          V35= vs_base[0];
401          (VV[5]->s.s_dbind)= make_cons((V35),(VV[5]->s.s_dbind));          setq(VV[5],make_cons((V35),symbol_value(VV[5])));
402          V36= Ct;          V36= Ct;
403          base[8]= (V35);          base[8]= (V35);
404          base[9]= (V30);          base[9]= (V30);
# Line 457  T219:; Line 460  T219:;
460          Lcerror();          Lcerror();
461          vs_top=sup;          vs_top=sup;
462  T241:;  T241:;
463          base[8]= CMPcar((V41));          base[8]= car((V41));
464          base[9]= CMPcadr((V41));          base[9]= cadr((V41));
465          base[10]= CMPcaddr((V41));          base[10]= caddr((V41));
466          base[11]= list(2,VV[37],list(2,VV[38],(V30)));          base[11]= list(2,VV[37],list(2,VV[38],(V30)));
467          base[12]= list(2,VV[23],(V30));          base[12]= list(2,VV[23],(V30));
468          base[13]= (V24);          base[13]= (V24);
# Line 477  T240:; Line 480  T240:;
480          object V49;          object V49;
481          object V50;          object V50;
482          object V51;          object V51;
483          V48= (type_of(CMPcar((V41)))==t_cons?Ct:Cnil);          V48= (type_of(car((V41)))==t_cons?Ct:Cnil);
484          if(((V48))==Cnil){          if(((V48))==Cnil){
485          goto T263;}          goto T263;}
486          V49= CMPcadar((V41));          V49= cadar((V41));
487          goto T261;          goto T261;
488  T263:;  T263:;
489          V49= CMPcar((V41));          V49= car((V41));
490  T261:;  T261:;
491          if(((V48))==Cnil){          if(((V48))==Cnil){
492          goto T267;}          goto T267;}
493          V50= CMPcaar((V41));          V50= caar((V41));
494          goto T265;          goto T265;
495  T267:;  T267:;
496          base[12]= (V49);          base[12]= (V49);
# Line 496  T267:; Line 499  T267:;
499          vs_top=sup;          vs_top=sup;
500          V50= vs_base[0];          V50= vs_base[0];
501  T265:;  T265:;
502          V51= CMPcaddr((V41));          V51= caddr((V41));
503          base[12]= (V49);          base[12]= (V49);
504          base[13]= CMPcadr((V41));          base[13]= cadr((V41));
505          base[14]= (V51);          base[14]= (V51);
506          base[15]= list(3,VV[39],list(2,VV[40],(V50)),(V35));          base[15]= list(3,VV[39],list(2,VV[40],(V50)),(V35));
507          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 512  T265:; Line 515  T265:;
515          goto T86;}          goto T86;}
516  T259:;  T259:;
517          if((V46!= VV[33]))goto T281;          if((V46!= VV[33]))goto T281;
518          base[8]= CMPcar((V41));          base[8]= car((V41));
519          base[9]= CMPcadr((V41));          base[9]= cadr((V41));
520          base[10]= Cnil;          base[10]= Cnil;
521          vs_top=(vs_base=base+8)+3;          vs_top=(vs_base=base+8)+3;
522          (void) (*Lnk81)();          (void) (*Lnk81)();
# Line 582  T286:; Line 585  T286:;
585          Lerror();          Lerror();
586          vs_top=sup;}          vs_top=sup;}
587  T86:;  T86:;
588          V40= CMPcdr((V40));          V40= cdr((V40));
589          goto T73;}          goto T73;}
590  T71:;  T71:;
591          if(((V36))!=Cnil){          if(((V36))!=Cnil){
# Line 646  T352:; Line 649  T352:;
649          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));}
650  T336:;  T336:;
651          V69= list(3,VV[43],/* INLINE-ARGS */V57,V58);          V69= list(3,VV[43],/* INLINE-ARGS */V57,V58);
652          (VV[2]->s.s_dbind)= make_cons(/* INLINE-ARGS */V69,(VV[2]->s.s_dbind));          setq(VV[2],make_cons(/* INLINE-ARGS */V69,symbol_value(VV[2])));
653  T324:;  T324:;
654          if(((V34))==Cnil){          if(((V34))==Cnil){
655          goto T356;}          goto T356;}
# Line 675  T366:; Line 678  T366:;
678  T364:;  T364:;
679          V77= list(4,VV[62],(V70),VV[63],(V71));          V77= list(4,VV[62],(V70),VV[63],(V71));
680          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))));
681          (VV[2]->s.s_dbind)= make_cons(/* INLINE-ARGS */V78,(VV[2]->s.s_dbind));}          setq(VV[2],make_cons(/* INLINE-ARGS */V78,symbol_value(VV[2])));}
682  T356:;  T356:;
683          base[8]= (V38);          base[8]= (V38);
684          base[9]= (V33);          base[9]= (V33);
# Line 695  T370:; Line 698  T370:;
698  static L3()  static L3()
699  {register object *base=vs_base;  {register object *base=vs_base;
700          register object *sup=base+VM3; VC3          register object *sup=base+VM3; VC3
701          vs_check;          vs_reserve(VM3);
702          {object V79;          {object V79;
703          object V80;          object V80;
704          object V81;          object V81;
705          object V82;          object V82;
706          object V83;          object V83;
707          object V84;          object V84;
708            check_arg(6);
709          V79=(base[0]);          V79=(base[0]);
710          V80=(base[1]);          V80=(base[1]);
711          V81=(base[2]);          V81=(base[2]);
# Line 729  T379:; Line 733  T379:;
733  T377:;  T377:;
734          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)));
735          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)))));
736          (VV[4]->s.s_dbind)= make_cons(/* INLINE-ARGS */V92,(VV[4]->s.s_dbind));          setq(VV[4],make_cons(/* INLINE-ARGS */V92,symbol_value(VV[4])));
737          base[6]= (VV[4]->s.s_dbind);          base[6]= symbol_value(VV[4]);
738          vs_top=(vs_base=base+6)+1;          vs_top=(vs_base=base+6)+1;
739          return;}          return;}
740          }          }
# Line 740  T377:; Line 744  T377:;
744  static L4()  static L4()
745  {register object *base=vs_base;  {register object *base=vs_base;
746          register object *sup=base+VM4; VC4          register object *sup=base+VM4; VC4
747          vs_check;          vs_reserve(VM4);
748          {object V93;          {object V93;
749          object V94;          object V94;
750          object V95;          object V95;
751          object V96;          object V96;
752          object V97;          object V97;
753            if(vs_top-vs_base<3) too_few_arguments();
754            if(vs_top-vs_base>5) too_many_arguments();
755          V93=(base[0]);          V93=(base[0]);
756          V94=(base[1]);          V94=(base[1]);
757          V95=(base[2]);          V95=(base[2]);
# Line 760  static L4() Line 766  static L4()
766  T381:;  T381:;
767          V96= Cnil;          V96= Cnil;
768  T382:;  T382:;
769          V97= (VV[0]->s.s_dbind);          V97= symbol_value(VV[0]);
770  T383:;  T383:;
771          {object V98;          {object V98;
772          if(((V96))==Cnil){          if(((V96))==Cnil){
# Line 772  T388:; Line 778  T388:;
778  T386:;  T386:;
779          if(((V95))==Cnil){          if(((V95))==Cnil){
780          goto T391;}          goto T391;}
781          (VV[4]->s.s_dbind)= make_cons((V98),(VV[4]->s.s_dbind));          setq(VV[4],make_cons((V98),symbol_value(VV[4])));
782          base[5]= (VV[4]->s.s_dbind);          base[5]= symbol_value(VV[4]);
783          vs_top=(vs_base=base+5)+1;          vs_top=(vs_base=base+5)+1;
784          return;          return;
785  T391:;  T391:;
786          (VV[3]->s.s_dbind)= make_cons((V98),(VV[3]->s.s_dbind));          setq(VV[3],make_cons((V98),symbol_value(VV[3])));
787          base[5]= (VV[3]->s.s_dbind);          base[5]= symbol_value(VV[3]);
788          vs_top=(vs_base=base+5)+1;          vs_top=(vs_base=base+5)+1;
789          return;}          return;}
790          }          }
# Line 788  T391:; Line 794  T391:;
794  static L5()  static L5()
795  {register object *base=vs_base;  {register object *base=vs_base;
796          register object *sup=base+VM5; VC5          register object *sup=base+VM5; VC5
797          vs_check;          vs_reserve(VM5);
798          {register object V99;          {register object V99;
799          object V100;          object V100;
800          register object V101;          register object V101;
# Line 797  static L5() Line 803  static L5()
803          object V104;          object V104;
804          object V105;          object V105;
805          object V106;          object V106;
806            check_arg(8);
807          V99=(base[0]);          V99=(base[0]);
808          V100=(base[1]);          V100=(base[1]);
809          V101=(base[2]);          V101=(base[2]);
# Line 870  T422:; Line 877  T422:;
877  static L6()  static L6()
878  {register object *base=vs_base;  {register object *base=vs_base;
879          register object *sup=base+VM6; VC6          register object *sup=base+VM6; VC6
880          vs_check;          vs_reserve(VM6);
881          {object V108;          {object V108;
882          object V109;          object V109;
883          register object V110;          register object V110;
884            if(vs_top-vs_base<2) too_few_arguments();
885            if(vs_top-vs_base>3) too_many_arguments();
886          V108=(base[0]);          V108=(base[0]);
887          V109=(base[1]);          V109=(base[1]);
888          vs_base=vs_base+2;          vs_base=vs_base+2;
# Line 891  T432:; Line 900  T432:;
900          {register object V113;          {register object V113;
901          V113= (V108);          V113= (V108);
902  T435:;  T435:;
903          if(!(((V113))==Cnil)){          if(!(endp((V113)))){
904          goto T436;}          goto T436;}
905          base[3]= (V113);          base[3]= (V113);
906          base[4]= nreverse((V111));          base[4]= nreverse((V111));
# Line 900  T435:; Line 909  T435:;
909          return;          return;
910  T436:;  T436:;
911          {register object V114;          {register object V114;
912          V114= CMPcar((V113));          V114= car((V113));
913          if(!(type_of((V114))==t_string)){          if(!(type_of((V114))==t_string)){
914          goto T446;}          goto T446;}
915          if((CMPcdr((V113)))==Cnil){          if((cdr((V113)))==Cnil){
916          goto T446;}          goto T446;}
917          if(((V110))==Cnil){          if(((V110))==Cnil){
918          goto T451;}          goto T451;}
# Line 919  T451:; Line 928  T451:;
928  T446:;  T446:;
929          if(!(type_of((V114))==t_cons)){          if(!(type_of((V114))==t_cons)){
930          goto T459;}          goto T459;}
931          if(type_of(CMPcar((V114)))==t_symbol){          if(type_of(car((V114)))==t_symbol){
932          goto T460;}          goto T460;}
933  T459:;  T459:;
934          base[3]= (V113);          base[3]= (V113);
# Line 928  T459:; Line 937  T459:;
937          vs_top=(vs_base=base+3)+3;          vs_top=(vs_base=base+3)+3;
938          return;          return;
939  T460:;  T460:;
940          if(!((CMPcar((V114)))==(VV[7]))){          if(!((car((V114)))==(VV[7]))){
941          goto T468;}          goto T468;}
942          V111= make_cons((V114),(V111));          V111= make_cons((V114),(V111));
943          goto T443;          goto T443;
# Line 939  T468:; Line 948  T468:;
948          vs_top=(vs_base=base+3)+3;          vs_top=(vs_base=base+3)+3;
949          return;}          return;}
950  T443:;  T443:;
951          V113= CMPcdr((V113));          V113= cdr((V113));
952          goto T435;}}          goto T435;}}
953          }          }
954  }  }
# Line 948  T443:; Line 957  T443:;
957  static L7()  static L7()
958  {register object *base=vs_base;  {register object *base=vs_base;
959          register object *sup=base+VM7; VC7          register object *sup=base+VM7; VC7
960          vs_check;          vs_reserve(VM7);
961            check_arg(2);
962          vs_top=sup;          vs_top=sup;
963          {object V115=base[0]->c.c_cdr;          {object V115=base[0]->c.c_cdr;
964            if(endp(V115))invalid_macro_call();
965          base[2]= (V115->c.c_car);          base[2]= (V115->c.c_car);
966          V115=V115->c.c_cdr;          V115=V115->c.c_cdr;
967            if(endp(V115))invalid_macro_call();
968          base[3]= (V115->c.c_car);          base[3]= (V115->c.c_car);
969          V115=V115->c.c_cdr;          V115=V115->c.c_cdr;
970          base[4]= V115;}          base[4]= V115;}
# Line 1002  static LnkT82(){ call_or_link(VV[82],&Ln Line 1014  static LnkT82(){ call_or_link(VV[82],&Ln
1014  static LnkT81(){ call_or_link(VV[81],&Lnk81);} /* PUSH-LET-BINDING */  static LnkT81(){ call_or_link(VV[81],&Lnk81);} /* PUSH-LET-BINDING */
1015  static LnkT80(){ call_or_link(VV[80],&Lnk80);} /* PARSE-DEFMACRO-LAMBDA-LIST */  static LnkT80(){ call_or_link(VV[80],&Lnk80);} /* PARSE-DEFMACRO-LAMBDA-LIST */
1016  static LnkT22(){ call_or_link(VV[22],&Lnk22);} /* PARSE-BODY */  static LnkT22(){ call_or_link(VV[22],&Lnk22);} /* PARSE-BODY */
1017    
1018    #ifdef SYSTEM_SPECIAL_INIT
1019    SYSTEM_SPECIAL_INIT
1020    #endif
1021    

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

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