2
#include "cmpinclude.h"
3
#include "gcl_destructuring_bind.h"
4
void init_gcl_destructuring_bind(){do_init(VV);}
5
/* local entry for function DO-ARG-COUNT-ERROR */
7
static object LI1(V7,V8,V9,V10,V11,V12)
9
object V7;object V8;object V9;object V10;object V11;object V12;
20
vs_top=(vs_base=base+0)+7;
23
{object V13 = vs_base[0];
28
/* function definition for PARSE-DEFMACRO */
31
{register object *base=vs_base;
32
register object *sup=base+VM2; VC2
44
parse_key(vs_base+5,FALSE,FALSE,5,VV[83],VV[84],VV[85],VV[86],VV[87]);
57
bds_bind(VV[1],base[8]);
68
vs_top=(vs_base=base+15)+3;
70
if(vs_base>=vs_top){vs_top=sup;goto T14;}
73
if(vs_base>=vs_top){vs_top=sup;goto T15;}
76
if(vs_base>=vs_top){vs_top=sup;goto T16;}
103
base[24]= (((V19))==Cnil?Ct:Cnil);
106
vs_top=(vs_base=base+19)+8;
108
if(vs_base>=vs_top){vs_top=sup;goto T27;}
111
if(vs_base>=vs_top){vs_top=sup;goto T28;}
114
if(vs_base>=vs_top){vs_top=sup;goto T29;}
129
V29= nreverse((VV[5]->s.s_dbind));
130
if(((VV[6]->s.s_dbind))==Cnil){
132
V31= list(2,VV[8],make_cons(VV[9],(VV[6]->s.s_dbind)));
133
base[20]= make_cons(/* INLINE-ARGS */V31,Cnil);
140
base[21]= (VV[3]->s.s_dbind);
141
V32= nreverse((VV[4]->s.s_dbind));
142
V33= listA(3,VV[7],/* INLINE-ARGS */V32,append((V24),(V23)));
143
base[22]= make_cons(/* INLINE-ARGS */V33,Cnil);
144
vs_top=(vs_base=base+20)+3;
148
base[19]= listA(3,VV[7],/* INLINE-ARGS */V29,V30);
153
V34= list(2,VV[8],list(2,VV[10],(V21)));
154
base[20]= make_cons(/* INLINE-ARGS */V34,Cnil);
164
vs_top=(vs_base=base+19)+5;
173
/* function definition for MAKE-KEYWORD */
176
{register object *base=vs_base;
177
register object *sup=base+VM3; VC3
184
base[1]= symbol_name((V35));
186
vs_top=(vs_base=base+3)+1;
190
vs_top=(vs_base=base+1)+2;
195
/* function definition for DEFMACRO-ERROR */
198
{register object *base=vs_base;
199
register object *sup=base+VM4; VC4
214
vs_top=(vs_base=base+3)+4;
219
/* function definition for VERIFY-KEYWORDS */
222
{register object *base=vs_base;
223
register object *sup=base+VM5; VC5
225
{register object V39;
234
{register object V42;
248
if(((*(LnkLI49))(VV[14],(V39)))!=Cnil){
251
base[4]= list(2,(V43),(V40));
252
vs_top=(vs_base=base+3)+2;
258
vs_top=(vs_base=base+3)+2;
262
if(!(type_of((V44))==t_cons)){
264
{object V45= CMPcdr((V44));
265
if(type_of(V45)==t_cons||(V45)==Cnil){
271
vs_top=(vs_base=base+3)+2;
275
if((CMPcdr((V44)))!=Cnil){
279
vs_top=(vs_base=base+3)+2;
283
if((CMPcar((V44)))==(VV[14])){
285
{register object x= CMPcar((V44)),V46= (V40);
287
if(eql(x,V46->c.c_car)){
289
}else V46=V46->c.c_cdr;
295
{register object V47;
297
V42= make_cons((V47),(V42));
308
/* local entry for function LOOKUP-KEYWORD */
310
static object LI6(V50,V51)
312
register object V50;object V51;
316
{register object V52;
320
if(!(((V52))==Cnil)){
326
if(!(((V50))==(CMPcar((V52))))){
328
{object V54 = CMPcadr((V52));
336
/* local entry for function KEYWORD-SUPPLIED-P */
338
static object LI7(V57,V58)
340
register object V57;object V58;
344
{register object V59;
348
if(!(((V59))==Cnil)){
354
if(!(((V57))==(CMPcar((V59))))){
364
/* function definition for PARSE-DEFMACRO-LAMBDA-LIST */
367
{register object *base=vs_base;
368
register object *sup=base+VM8; VC8
384
if(vs_base>=vs_top){vs_top=sup;goto T120;}
387
if(vs_base>=vs_top){vs_top=sup;goto T121;}
390
if(vs_base>=vs_top){vs_top=sup;goto T122;}
405
{register object V70;
416
V70= list(2,VV[18],(V63));
424
V72= small_fixnum(0);
425
V73= small_fixnum(0);
435
if(!(type_of((V79))!=t_cons)){
440
if(!((CMPcar((V79)))==(VV[20]))){
449
if((CMPcar((V62)))==(VV[20])){
453
vs_top=(vs_base=base+8)+2;
458
{register object V80;
462
if(!(type_of((V80))!=t_cons)){
469
(void)((VFUN_NARGS=3,(*(LnkLI90))((V80),(V70),Cnil)));
474
{register object V81;
476
if(!(((V81))==(VV[20]))){
478
if((CMPcdr((V80)))==Cnil){
480
if(!(type_of(CMPcadr((V80)))==t_symbol)){
483
(void)((VFUN_NARGS=3,(*(LnkLI90))(CMPcar((V80)),(V63),Cnil)));
490
vs_top=(vs_base=base+8)+3;
496
if(!(((V81))==(VV[23]))){
502
vs_top=(vs_base=base+8)+2;
511
vs_top=(vs_base=base+8)+1;
516
if((CMPcdr((V80)))==Cnil){
518
if(!(type_of(CMPcadr((V80)))==t_symbol)){
521
(void)((VFUN_NARGS=3,(*(LnkLI90))(CMPcar((V80)),(V69),Cnil)));
529
vs_top=(vs_base=base+8)+3;
535
if(((V81))==(VV[27])){
537
if(!(((V81))==(VV[28]))){
541
if((CMPcdr((V80)))==Cnil){
543
if(!(type_of(CMPcadr((V80)))==t_symbol)){
547
(void)((VFUN_NARGS=3,(*(LnkLI90))(CMPcar((V80)),(V70),Cnil)));
551
if((CMPcdr((V80)))==Cnil){
553
if(!(type_of(CMPcadr((V80)))==t_cons)){
555
if(!(type_of(CMPcaadr((V80)))==t_symbol)){
564
V83= CMPcadar((V80));
565
V84= CMPcaddar((V80));
570
V86= list(2,VV[29],list(4,VV[30],(V70),(V69),(((((V84))==Cnil?Ct:Cnil))==Cnil?Ct:Cnil)));
571
(void)((VFUN_NARGS=3,(*(LnkLI90))((V85),/* INLINE-ARGS */V86,Ct)));
575
V87= list(2,VV[31],(V85));
576
(void)((VFUN_NARGS=3,(*(LnkLI90))((V82),/* INLINE-ARGS */V87,Cnil)));
581
V88= list(2,VV[32],(V85));
582
(void)((VFUN_NARGS=3,(*(LnkLI90))((V83),/* INLINE-ARGS */V88,Cnil)));
587
V89= list(2,VV[33],(V85));
588
(void)((VFUN_NARGS=3,(*(LnkLI90))((V84),/* INLINE-ARGS */V89,Cnil)));
592
base[8]= symbol_name((V81));
595
vs_top=(vs_base=base+8)+3;
601
if(!(((V81))==(VV[34]))){
607
if(!(((V81))==(VV[36]))){
611
vs_top=(vs_base=base+8)+1;
615
(VV[6]->s.s_dbind)= make_cons(V75,(VV[6]->s.s_dbind));
617
(void)((VFUN_NARGS=3,(*(LnkLI90))((V75),(V70),Ct)));
621
if(!(((V81))==(VV[39]))){
627
if(!(((V81))==(VV[40]))){
633
if(!(type_of((V81))==t_cons||((V81))==Cnil)){
636
if((V91!= VV[19]))goto T271;
639
vs_top=(vs_base=base+8)+1;
643
V93= list(2,VV[31],(V70));
644
(void)((*(LnkLI92))((V92),/* INLINE-ARGS */V93,(V81),(V64),(V65),(V66)));
650
vs_top=(vs_base=base+8)+5;
653
V70= list(2,VV[18],(V70));
654
V73= number_plus((V73),small_fixnum(1));
655
V72= number_plus((V72),small_fixnum(1));
659
if((V91!= VV[35]))goto T286;
660
if(!(((long)length((V81)))>(3))){
665
vs_top=(vs_base=base+8)+3;
670
base[8]= CMPcar((V81));
671
base[9]= CMPcadr((V81));
672
base[10]= CMPcaddr((V81));
673
base[11]= list(2,VV[45],list(2,VV[46],(V70)));
674
base[12]= list(2,VV[31],(V70));
678
vs_top=(vs_base=base+8)+8;
681
V70= list(2,VV[18],(V70));
682
V72= number_plus((V72),small_fixnum(1));
686
if((V91!= VV[37]))goto T305;
691
V94= (type_of(CMPcar((V81)))==t_cons?Ct:Cnil);
694
V95= CMPcadar((V81));
708
vs_top=(vs_base=base+12)+1;
714
V97= CMPcaddr((V81));
716
base[13]= CMPcadr((V81));
718
base[15]= list(3,VV[47],list(2,VV[48],(V96)),(V75));
719
base[16]= list(3,VV[49],list(2,VV[48],(V96)),(V75));
723
vs_top=(vs_base=base+12)+8;
726
V74= make_cons(V96,(V74));
730
if((V91!= VV[41]))goto T327;
731
(void)((VFUN_NARGS=3,(*(LnkLI90))(CMPcar((V81)),CMPcadr((V81)),Cnil)));
738
if(!(type_of((V81))==t_symbol)){
741
if((V99!= VV[19]))goto T331;
742
V73= number_plus((V73),small_fixnum(1));
743
V72= number_plus((V72),small_fixnum(1));
744
V100= list(2,VV[31],(V70));
745
(void)((VFUN_NARGS=3,(*(LnkLI90))((V81),/* INLINE-ARGS */V100,Cnil)));
746
V70= list(2,VV[18],(V70));
750
if((V99!= VV[35]))goto T338;
751
V72= number_plus((V72),small_fixnum(1));
752
V101= list(2,VV[31],(V70));
753
V102= list(2,VV[45],list(2,VV[46],(V70)));
754
(void)((VFUN_NARGS=4,(*(LnkLI90))((V81),/* INLINE-ARGS */V101,Cnil,/* INLINE-ARGS */V102)));
755
V70= list(2,VV[18],(V70));
759
if((V99!= VV[37]))goto T343;
762
vs_top=(vs_base=base+8)+1;
766
V104= list(3,VV[49],(V103),(V75));
767
(void)((VFUN_NARGS=3,(*(LnkLI90))((V81),/* INLINE-ARGS */V104,Cnil)));
768
V74= make_cons(V103,(V74));
772
if((V99!= VV[41]))goto T348;
773
(void)((VFUN_NARGS=3,(*(LnkLI90))((V81),Cnil,Cnil)));
782
vs_top=(vs_base=base+8)+2;
796
V107= list(2,VV[18],(V63));
803
V108= list(2,VV[53],list(3,VV[54],VV[55],V107));
806
V109= make_cons((V72),Cnil);
813
V110= listA(4,VV[52],(V73),/* INLINE-ARGS */V108,V109);
817
V112= list(2,VV[18],(V63));
824
if(!(((V66))==(VV[2]))){
826
V113= list(2,VV[48],(V65));
827
V114= list(2,VV[48],(V64));
828
V115= list(2,VV[48],(V62));
838
V111= list(7,VV[56],/* INLINE-ARGS */V113,/* INLINE-ARGS */V114,(V112),/* INLINE-ARGS */V115,(V73),V116);
842
V117= list(2,VV[48],(V65));
845
V118= list(2,VV[59],list(2,VV[48],(V64)));
852
V119= list(2,VV[48],(V62));
855
V120= list(2,VV[63],(V72));
862
V121= listA(7,VV[60],(V112),VV[61],/* INLINE-ARGS */V119,VV[62],(V73),V120);
863
V111= listA(5,(V66),VV[57],VV[58],/* INLINE-ARGS */V117,append(V118,/* INLINE-ARGS */V121));}
866
V106= list(3,VV[51],/* INLINE-ARGS */V110,V111);
867
(VV[3]->s.s_dbind)= make_cons((V106),(VV[3]->s.s_dbind));}
875
vs_top=(vs_base=base+8)+1;
880
vs_top=(vs_base=base+8)+1;
885
V125= list(2,(V122),(V123));
886
V126= list(2,VV[48],(V74));
887
V127= list(4,VV[67],(V75),/* INLINE-ARGS */V126,list(2,VV[48],(V77)));
888
V128= list(2,VV[48],(V65));
891
V129= list(2,VV[59],list(2,VV[48],(V64)));
898
V130= list(4,VV[70],(V122),VV[71],(V123));
899
V124= list(4,VV[66],/* INLINE-ARGS */V125,/* INLINE-ARGS */V127,list(3,VV[68],(V122),listA(5,(V66),VV[69],VV[58],/* INLINE-ARGS */V128,append(V129,/* INLINE-ARGS */V130))));
900
(VV[3]->s.s_dbind)= make_cons((V124),(VV[3]->s.s_dbind));}}
914
vs_top=(vs_base=base+8)+3;
918
/* local entry for function PUSH-SUB-LIST-BINDING */
920
static object LI9(V137,V138,V139,V140,V141,V142)
922
object V137;object V138;object V139;object V140;object V141;object V142;
926
{register object V143;
928
vs_top=(vs_base=base+0)+1;
933
V145= list(2,(V143),(V138));
934
V146= make_cons(/* INLINE-ARGS */V145,Cnil);
935
V147= list(2,VV[75],(V143));
936
V148= list(2,VV[48],(V141));
939
V149= list(2,VV[59],list(2,VV[48],(V140)));
946
V150= list(4,VV[77],(V143),VV[61],list(2,VV[48],(V139)));
947
V144= list(2,(V137),list(3,VV[73],/* INLINE-ARGS */V146,list(4,VV[74],/* INLINE-ARGS */V147,(V143),listA(5,(V142),VV[76],VV[58],/* INLINE-ARGS */V148,append(V149,/* INLINE-ARGS */V150)))));
948
(VV[5]->s.s_dbind)= make_cons((V144),(VV[5]->s.s_dbind));
949
{object V151 = (VV[5]->s.s_dbind);
954
/* local entry for function PUSH-LET-BINDING */
956
static object LI10(object V154,object V153,object V152,object first,...)
959
int narg = VFUN_NARGS; VMB10 VMS10 VMV10
970
if (narg <= 0) goto T414;
973
if (--narg <= 0) goto T415;
975
V159= va_arg(ap,object);}
982
V159= (VV[1]->s.s_dbind);
988
V160= list(2,(V155),list(4,VV[74],(V158),(V156),(V159)));
992
V160= list(2,(V155),(V156));
997
(VV[5]->s.s_dbind)= make_cons(V160,(VV[5]->s.s_dbind));
998
{object V162 = (VV[5]->s.s_dbind);
1002
(VV[4]->s.s_dbind)= make_cons(V160,(VV[4]->s.s_dbind));
1003
{object V164 = (VV[4]->s.s_dbind);
1008
/* function definition for PUSH-OPTIONAL-BINDING */
1011
{register object *base=vs_base;
1012
register object *sup=base+VM11; VC11
1014
{register object V165;
1016
register object V167;
1036
vs_top=(vs_base=base+8)+1;
1042
(void)((VFUN_NARGS=3,(*(LnkLI90))((V167),(V168),Ct)));
1043
if(!(type_of((V165))==t_cons)){
1047
vs_top=(vs_base=base+8)+1;
1051
V174= list(4,VV[74],(V167),(V169),(V166));
1052
(void)((*(LnkLI92))((V173),/* INLINE-ARGS */V174,(V165),(V170),(V171),(V172)));
1058
vs_top=(vs_base=base+8)+5;
1063
if(!(type_of((V165))==t_symbol)){
1065
base[8]= (VFUN_NARGS=5,(*(LnkLI90))((V165),(V169),Cnil,(V167),(V166)));
1066
vs_top=(vs_base=base+8)+1;
1072
vs_top=(vs_base=base+8)+2;
1077
/* function definition for PARSE-BODY */
1080
{register object *base=vs_base;
1081
register object *sup=base+VM12; VC12
1085
register object V177;
1089
if(vs_base>=vs_top){vs_top=sup;goto T450;}
1098
{register object V178;
1099
register object V179;
1102
{register object V180;
1106
if(!(((V180))==Cnil)){
1109
base[4]= nreverse((V178));
1111
vs_top=(vs_base=base+3)+3;
1115
{register object V181;
1116
V181= CMPcar((V180));
1117
if(!(type_of((V181))==t_string)){
1119
if((CMPcdr((V180)))==Cnil){
1129
base[4]= nreverse((V178));
1131
vs_top=(vs_base=base+3)+3;
1135
if(!(type_of((V181))==t_cons)){
1137
if(type_of(CMPcar((V181)))==t_symbol){
1142
base[4]= nreverse((V178));
1144
vs_top=(vs_base=base+3)+3;
1148
if(!((CMPcar((V181)))==(VV[8]))){
1150
{register object V182;
1152
V178= make_cons((V182),(V178));
1157
base[4]= nreverse((V178));
1159
vs_top=(vs_base=base+3)+3;
1163
V180= CMPcdr((V180));
1167
/* macro definition for DESTRUCTURING-BIND */
1170
{register object *base=vs_base;
1171
register object *sup=base+VM13; VC13
1174
{object V183=base[0]->c.c_cdr;
1175
base[2]= (V183->c.c_car);
1177
base[3]= (V183->c.c_car);
1182
vs_top=(vs_base=base+6)+1;
1197
vs_top=(vs_base=base+6)+9;
1199
if(vs_base>=vs_top){vs_top=sup;goto T509;}
1202
if(vs_base>=vs_top){vs_top=sup;goto T510;}
1214
V187= list(2,(V184),base[3]);
1215
V188= make_cons(/* INLINE-ARGS */V187,Cnil);
1216
V189= make_cons((V185),Cnil);
1217
base[6]= listA(3,VV[73],/* INLINE-ARGS */V188,append((V186),/* INLINE-ARGS */V189));
1218
vs_top=(vs_base=base+6)+1;
1221
static void LnkT95(){ call_or_link(VV[95],(void **)(void *)&Lnk95);} /* PARSE-DEFMACRO */
1222
static void LnkT94(){ call_or_link(VV[94],(void **)(void *)&Lnk94);} /* MAKE-KEYWORD */
1223
static void LnkT93(){ call_or_link(VV[93],(void **)(void *)&Lnk93);} /* PUSH-OPTIONAL-BINDING */
1224
static object LnkTLI92(object first,...){object V1;va_list ap;va_start(ap,first);V1=call_proc_new(VV[92],(void **)(void *)&LnkLI92,6,first,ap);va_end(ap);return V1;} /* PUSH-SUB-LIST-BINDING */
1225
static void LnkT91(){ call_or_link(VV[91],(void **)(void *)&Lnk91);} /* DEFMACRO-ERROR */
1226
static object LnkTLI90(object first,...){object V1;va_list ap;va_start(ap,first);V1=call_vproc_new(VV[90],(void **)(void *)&LnkLI90,first,ap);va_end(ap);return V1;} /* PUSH-LET-BINDING */
1227
static object LnkTLI49(object first,...){object V1;va_list ap;va_start(ap,first);V1=call_proc_new(VV[49],(void **)(void *)&LnkLI49,2,first,ap);va_end(ap);return V1;} /* LOOKUP-KEYWORD */
1228
static void LnkT89(){ call_or_link(VV[89],(void **)(void *)&Lnk89);} /* SPECIFIC-ERROR */
1229
static void LnkT88(){ call_or_link(VV[88],(void **)(void *)&Lnk88);} /* PARSE-DEFMACRO-LAMBDA-LIST */
1230
static void LnkT30(){ call_or_link(VV[30],(void **)(void *)&Lnk30);} /* PARSE-BODY */
1232
#ifdef SYSTEM_SPECIAL_INIT