1 |
|
|
2 |
|
#include <cmpinclude.h> |
3 |
|
#include "destructuring_bind.h" |
4 |
|
init_destructuring_bind(){do_init(VV);} |
5 |
|
/* macro definition for MEMQ */ |
6 |
|
|
7 |
|
static L1() |
8 |
|
{register object *base=vs_base; |
9 |
|
register object *sup=base+VM1; VC1 |
10 |
|
vs_check; |
11 |
|
vs_top=sup; |
12 |
|
{object V1=base[0]->c.c_cdr; |
13 |
|
base[2]= (V1->c.c_car); |
14 |
|
V1=V1->c.c_cdr; |
15 |
|
base[3]= (V1->c.c_car);} |
16 |
|
base[4]= listA(4,VV[0],base[2],base[3],VV[1]); |
17 |
|
vs_top=(vs_base=base+4)+1; |
18 |
|
return; |
19 |
|
} |
20 |
|
/* function definition for MAKE-CAXR */ |
21 |
|
|
22 |
|
static L2() |
23 |
|
{register object *base=vs_base; |
24 |
|
register object *sup=base+VM2; VC2 |
25 |
|
vs_check; |
26 |
|
{object V2; |
27 |
|
object V3; |
28 |
|
V2=(base[0]); |
29 |
|
V3=(base[1]); |
30 |
|
vs_top=sup; |
31 |
|
TTL:; |
32 |
|
if(!(number_compare((V2),small_fixnum(4))<0)){ |
33 |
|
goto T2;} |
34 |
|
base[2]= list(2,nth(fix((V2)),VV[2]),(V3)); |
35 |
|
vs_top=(vs_base=base+2)+1; |
36 |
|
return; |
37 |
|
T2:; |
38 |
|
V2= number_minus((V2),small_fixnum(4)); |
39 |
|
V3= list(2,VV[3],(V3)); |
40 |
|
goto TTL; |
41 |
|
} |
42 |
|
} |
43 |
|
/* function definition for MAKE-CDXR */ |
44 |
|
|
45 |
|
static L3() |
46 |
|
{register object *base=vs_base; |
47 |
|
register object *sup=base+VM3; VC3 |
48 |
|
vs_check; |
49 |
|
{register object V4; |
50 |
|
object V5; |
51 |
|
V4=(base[0]); |
52 |
|
V5=(base[1]); |
53 |
|
vs_top=sup; |
54 |
|
TTL:; |
55 |
|
if(!(number_compare(small_fixnum(0),(V4))==0)){ |
56 |
|
goto T8;} |
57 |
|
base[2]= (V5); |
58 |
|
vs_top=(vs_base=base+2)+1; |
59 |
|
return; |
60 |
|
T8:; |
61 |
|
if(!(number_compare((V4),small_fixnum(5))<0)){ |
62 |
|
goto T11;} |
63 |
|
base[2]= list(2,nth(fix((V4)),VV[4]),(V5)); |
64 |
|
vs_top=(vs_base=base+2)+1; |
65 |
|
return; |
66 |
|
T11:; |
67 |
|
V4= number_minus((V4),small_fixnum(4)); |
68 |
|
V5= list(2,VV[3],(V5)); |
69 |
|
goto TTL; |
70 |
|
} |
71 |
|
} |
72 |
|
/* function definition for EXTRACT-DECLARATIONS */ |
73 |
|
|
74 |
|
static L4() |
75 |
|
{register object *base=vs_base; |
76 |
|
register object *sup=base+VM4; VC4 |
77 |
|
vs_check; |
78 |
|
{register object V6; |
79 |
|
object V7; |
80 |
|
V6=(base[0]); |
81 |
|
vs_base=vs_base+1; |
82 |
|
if(vs_base>=vs_top){vs_top=sup;goto T16;} |
83 |
|
V7=(base[1]); |
84 |
|
vs_top=sup; |
85 |
|
goto T17; |
86 |
|
T16:; |
87 |
|
V7= Cnil; |
88 |
|
T17:; |
89 |
|
{object V8; |
90 |
|
register object V9; |
91 |
|
register object V10; |
92 |
|
V8= Cnil; |
93 |
|
V9= Cnil; |
94 |
|
V10= Cnil; |
95 |
|
if(!(type_of(CMPcar((V6)))==t_string)){ |
96 |
|
goto T19;} |
97 |
|
if((CMPcdr((V6)))==Cnil){ |
98 |
|
goto T19;} |
99 |
|
{object V11; |
100 |
|
V11= CMPcar((V6)); |
101 |
|
V6= CMPcdr((V6)); |
102 |
|
V8= (V11);} |
103 |
|
T19:; |
104 |
|
T30:; |
105 |
|
if(((V6))!=Cnil){ |
106 |
|
goto T32;} |
107 |
|
goto T28; |
108 |
|
T32:; |
109 |
|
V10= CMPcar((V6)); |
110 |
|
T40:; |
111 |
|
if(type_of((V10))==t_cons||((V10))==Cnil){ |
112 |
|
goto T43;} |
113 |
|
goto T28; |
114 |
|
T43:; |
115 |
|
if(!((CMPcar((V10)))==(VV[5]))){ |
116 |
|
goto T46;} |
117 |
|
goto T38; |
118 |
|
T46:; |
119 |
|
{register object V12; |
120 |
|
object V13; |
121 |
|
base[2]= (V10); |
122 |
|
base[3]= (V7); |
123 |
|
vs_top=(vs_base=base+2)+2; |
124 |
|
Lmacroexpand_1(); |
125 |
|
if(vs_base>=vs_top){vs_top=sup;goto T51;} |
126 |
|
V12= vs_base[0]; |
127 |
|
vs_base++; |
128 |
|
if(vs_base>=vs_top){vs_top=sup;goto T52;} |
129 |
|
V13= vs_base[0]; |
130 |
|
vs_top=sup; |
131 |
|
goto T53; |
132 |
|
T51:; |
133 |
|
V12= Cnil; |
134 |
|
T52:; |
135 |
|
V13= Cnil; |
136 |
|
T53:; |
137 |
|
if(!(((V12))==((V10)))){ |
138 |
|
goto T54;} |
139 |
|
if(((V13))==Cnil){ |
140 |
|
goto T55;} |
141 |
|
T54:; |
142 |
|
V10= (V12); |
143 |
|
goto T41; |
144 |
|
T55:; |
145 |
|
goto T28;} |
146 |
|
T41:; |
147 |
|
goto T40; |
148 |
|
T38:; |
149 |
|
{object V14; |
150 |
|
V14= CMPcar((V6)); |
151 |
|
V6= CMPcdr((V6));} |
152 |
|
{register object V15; |
153 |
|
register object V16; |
154 |
|
V15= CMPcdr((V10)); |
155 |
|
V16= CMPcar((V15)); |
156 |
|
T68:; |
157 |
|
if(!(((V15))==Cnil)){ |
158 |
|
goto T69;} |
159 |
|
goto T31; |
160 |
|
T69:; |
161 |
|
V9= make_cons((V16),(V9)); |
162 |
|
V15= CMPcdr((V15)); |
163 |
|
V16= CMPcar((V15)); |
164 |
|
goto T68;} |
165 |
|
T31:; |
166 |
|
goto T30; |
167 |
|
T28:; |
168 |
|
base[2]= (V8); |
169 |
|
if((V9)==Cnil){ |
170 |
|
base[3]= Cnil; |
171 |
|
goto T82;} |
172 |
|
V17= nreverse((V9)); |
173 |
|
V18= make_cons(VV[5],/* INLINE-ARGS */V17); |
174 |
|
base[3]= make_cons(/* INLINE-ARGS */V18,Cnil); |
175 |
|
T82:; |
176 |
|
base[4]= (V6); |
177 |
|
vs_top=(vs_base=base+2)+3; |
178 |
|
return;} |
179 |
|
} |
180 |
|
} |
181 |
|
/* function definition for DESTRUCTURE */ |
182 |
|
|
183 |
|
static L5() |
184 |
|
{register object *base=vs_base; |
185 |
|
register object *sup=base+VM5; VC5 |
186 |
|
vs_check; |
187 |
|
bds_check; |
188 |
|
{object V19; |
189 |
|
object V20; |
190 |
|
V19=(base[0]); |
191 |
|
V20=(base[1]); |
192 |
|
vs_top=sup; |
193 |
|
TTL:; |
194 |
|
{object V21; |
195 |
|
bds_bind(VV[6],Cnil); |
196 |
|
V21= Cnil; |
197 |
|
(VV[6]->s.s_dbind)= VV[7]; |
198 |
|
V22= list(3,VV[8],VV[9],(V20)); |
199 |
|
V21= make_cons(/* INLINE-ARGS */V22,Cnil); |
200 |
|
V20= VV[9]; |
201 |
|
base[4]= (V19); |
202 |
|
base[5]= (V20); |
203 |
|
vs_top=(vs_base=base+4)+2; |
204 |
|
(void) (*Lnk19)(); |
205 |
|
vs_top=sup; |
206 |
|
V23= vs_base[0]; |
207 |
|
V24= nreverse(V23); |
208 |
|
base[3]= nconc((V21),/* INLINE-ARGS */V24); |
209 |
|
base[5]= Cnil; |
210 |
|
base[6]= (VV[6]->s.s_dbind); |
211 |
|
vs_top=(vs_base=base+5)+2; |
212 |
|
(void) (*Lnk20)(); |
213 |
|
vs_top=sup; |
214 |
|
base[4]= vs_base[0]; |
215 |
|
vs_top=(vs_base=base+3)+2; |
216 |
|
bds_unwind1; |
217 |
|
return;} |
218 |
|
} |
219 |
|
} |
220 |
|
/* function definition for DESTRUCTURE-INTERNAL */ |
221 |
|
|
222 |
|
static L6() |
223 |
|
{register object *base=vs_base; |
224 |
|
register object *sup=base+VM6; VC6 |
225 |
|
vs_check; |
226 |
|
{object V25; |
227 |
|
register object V26; |
228 |
|
V25=(base[0]); |
229 |
|
V26=(base[1]); |
230 |
|
vs_top=sup; |
231 |
|
TTL:; |
232 |
|
{object V27; |
233 |
|
register object V28; |
234 |
|
register object V29; |
235 |
|
vs_base=vs_top; |
236 |
|
Lgensym(); |
237 |
|
vs_top=sup; |
238 |
|
V27= vs_base[0]; |
239 |
|
base[2]= small_fixnum(0); |
240 |
|
V28= Cnil; |
241 |
|
V29= Cnil; |
242 |
|
{register object V30; |
243 |
|
V30= (V25); |
244 |
|
T100:; |
245 |
|
if(((V30))!=Cnil){ |
246 |
|
goto T101;} |
247 |
|
goto T98; |
248 |
|
T101:; |
249 |
|
V28= CMPcar((V30)); |
250 |
|
if(!(type_of((V28))==t_symbol)){ |
251 |
|
goto T107;} |
252 |
|
{register object x= (V28),V31= VV[10]; |
253 |
|
while(V31!=Cnil) |
254 |
|
if(x==(V31->c.c_car)){ |
255 |
|
goto T110; |
256 |
|
}else V31=V31->c.c_cdr;} |
257 |
|
(VV[6]->s.s_dbind)= make_cons((V28),(VV[6]->s.s_dbind)); |
258 |
|
T110:; |
259 |
|
if((CMPcdr((V30)))!=Cnil){ |
260 |
|
goto T115;} |
261 |
|
base[3]= (V28); |
262 |
|
base[4]= (V26); |
263 |
|
base[5]= Cnil; |
264 |
|
vs_top=(vs_base=base+3)+3; |
265 |
|
L7(base); |
266 |
|
vs_top=sup; |
267 |
|
V32= vs_base[0]; |
268 |
|
V29= make_cons(V32,(V29)); |
269 |
|
goto T105; |
270 |
|
T115:; |
271 |
|
if(!(type_of(CMPcdr((V30)))==t_symbol)){ |
272 |
|
goto T123;} |
273 |
|
base[3]= (V28); |
274 |
|
base[4]= (V26); |
275 |
|
base[5]= CMPcdr((V30)); |
276 |
|
vs_top=(vs_base=base+3)+3; |
277 |
|
L7(base); |
278 |
|
vs_top=sup; |
279 |
|
V33= vs_base[0]; |
280 |
|
V29= make_cons(V33,(V29)); |
281 |
|
(VV[6]->s.s_dbind)= make_cons(CMPcdr((V30)),(VV[6]->s.s_dbind)); |
282 |
|
goto T98; |
283 |
|
T123:; |
284 |
|
{register object x= (V28),V34= VV[11]; |
285 |
|
while(V34!=Cnil) |
286 |
|
if(x==(V34->c.c_car)){ |
287 |
|
goto T135; |
288 |
|
}else V34=V34->c.c_cdr; |
289 |
|
goto T134;} |
290 |
|
T135:; |
291 |
|
base[2]= number_plus(base[2],small_fixnum(1)); |
292 |
|
goto T105; |
293 |
|
T134:; |
294 |
|
{register object x= CMPcadr((V30)),V35= VV[12]; |
295 |
|
while(V35!=Cnil) |
296 |
|
if(x==(V35->c.c_car)){ |
297 |
|
goto T139; |
298 |
|
}else V35=V35->c.c_cdr; |
299 |
|
goto T138;} |
300 |
|
T139:; |
301 |
|
base[3]= (V28); |
302 |
|
base[4]= (V26); |
303 |
|
base[5]= Cnil; |
304 |
|
vs_top=(vs_base=base+3)+3; |
305 |
|
L7(base); |
306 |
|
vs_top=sup; |
307 |
|
V36= vs_base[0]; |
308 |
|
V29= make_cons(V36,(V29)); |
309 |
|
base[2]= number_plus(base[2],small_fixnum(1)); |
310 |
|
goto T105; |
311 |
|
T138:; |
312 |
|
base[3]= (V28); |
313 |
|
base[4]= (V26); |
314 |
|
base[5]= (V26); |
315 |
|
vs_top=(vs_base=base+3)+3; |
316 |
|
L7(base); |
317 |
|
vs_top=sup; |
318 |
|
V37= vs_base[0]; |
319 |
|
V29= make_cons(V37,(V29)); |
320 |
|
goto T105; |
321 |
|
T107:; |
322 |
|
V38= list(2,(V27),Cnil); |
323 |
|
V39= make_cons(/* INLINE-ARGS */V38,Cnil); |
324 |
|
base[3]= (V27); |
325 |
|
base[4]= (V26); |
326 |
|
if(!(type_of(CMPcdr((V30)))==t_symbol)){ |
327 |
|
goto T159;} |
328 |
|
base[5]= CMPcdr((V30)); |
329 |
|
goto T157; |
330 |
|
T159:; |
331 |
|
base[5]= (V26); |
332 |
|
T157:; |
333 |
|
vs_top=(vs_base=base+3)+3; |
334 |
|
L7(base); |
335 |
|
vs_top=sup; |
336 |
|
V40= vs_base[0]; |
337 |
|
base[3]= CMPcar((V30)); |
338 |
|
base[4]= (V27); |
339 |
|
vs_top=(vs_base=base+3)+2; |
340 |
|
(void) (*Lnk19)(); |
341 |
|
vs_top=sup; |
342 |
|
V41= vs_base[0]; |
343 |
|
V42= listA(4,VV[13],/* INLINE-ARGS */V39,V40,nreverse(V41)); |
344 |
|
V29= make_cons(/* INLINE-ARGS */V42,(V29)); |
345 |
|
if(!(type_of(CMPcdr((V30)))==t_symbol)){ |
346 |
|
goto T105;} |
347 |
|
(VV[6]->s.s_dbind)= make_cons(CMPcdr((V30)),(VV[6]->s.s_dbind)); |
348 |
|
goto T98; |
349 |
|
T105:; |
350 |
|
V30= CMPcdr((V30)); |
351 |
|
goto T100;} |
352 |
|
T98:; |
353 |
|
base[3]= (V29); |
354 |
|
vs_top=(vs_base=base+3)+1; |
355 |
|
return;} |
356 |
|
} |
357 |
|
} |
358 |
|
/* macro definition for DESTRUCTURING-BIND */ |
359 |
|
|
360 |
|
static L8() |
361 |
|
{register object *base=vs_base; |
362 |
|
register object *sup=base+VM7; VC7 |
363 |
|
vs_check; |
364 |
|
vs_top=sup; |
365 |
|
{object V43=base[0]->c.c_cdr; |
366 |
|
base[2]= (V43->c.c_car); |
367 |
|
V43=V43->c.c_cdr; |
368 |
|
base[3]= (V43->c.c_car); |
369 |
|
V43=V43->c.c_cdr; |
370 |
|
base[4]= V43;} |
371 |
|
{object V44; |
372 |
|
object V45; |
373 |
|
object V46; |
374 |
|
base[5]= base[4]; |
375 |
|
vs_top=(vs_base=base+5)+1; |
376 |
|
(void) (*Lnk21)(); |
377 |
|
if(vs_base>=vs_top){vs_top=sup;goto T173;} |
378 |
|
V44= vs_base[0]; |
379 |
|
vs_base++; |
380 |
|
if(vs_base>=vs_top){vs_top=sup;goto T174;} |
381 |
|
V45= vs_base[0]; |
382 |
|
vs_base++; |
383 |
|
if(vs_base>=vs_top){vs_top=sup;goto T175;} |
384 |
|
V46= vs_base[0]; |
385 |
|
vs_top=sup; |
386 |
|
goto T176; |
387 |
|
T173:; |
388 |
|
V44= Cnil; |
389 |
|
T174:; |
390 |
|
V45= Cnil; |
391 |
|
T175:; |
392 |
|
V46= Cnil; |
393 |
|
T176:; |
394 |
|
{object V47; |
395 |
|
object V48; |
396 |
|
base[5]= base[2]; |
397 |
|
base[6]= base[3]; |
398 |
|
vs_top=(vs_base=base+5)+2; |
399 |
|
(void) (*Lnk22)(); |
400 |
|
if(vs_base>=vs_top){vs_top=sup;goto T180;} |
401 |
|
V47= vs_base[0]; |
402 |
|
vs_base++; |
403 |
|
if(vs_base>=vs_top){vs_top=sup;goto T181;} |
404 |
|
V48= vs_base[0]; |
405 |
|
vs_top=sup; |
406 |
|
goto T182; |
407 |
|
T180:; |
408 |
|
V47= Cnil; |
409 |
|
T181:; |
410 |
|
V48= Cnil; |
411 |
|
T182:; |
412 |
|
base[5]= (V45); |
413 |
|
base[6]= (V47); |
414 |
|
base[7]= make_cons(VV[18],(V46)); |
415 |
|
vs_top=(vs_base=base+5)+3; |
416 |
|
Lappend(); |
417 |
|
vs_top=sup; |
418 |
|
V49= vs_base[0]; |
419 |
|
base[5]= listA(3,VV[13],(V48),V49); |
420 |
|
vs_top=(vs_base=base+5)+1; |
421 |
|
return;}} |
422 |
|
} |
423 |
|
/* local function MAKE-POP */ |
424 |
|
|
425 |
|
static L7(base0) |
426 |
|
register object *base0; |
427 |
|
{ register object *base=vs_base; |
428 |
|
register object *sup=base+VM8; VC8 |
429 |
|
vs_check; |
430 |
|
{object V50; |
431 |
|
object V51; |
432 |
|
object V52; |
433 |
|
V50=(base[0]); |
434 |
|
V51=(base[1]); |
435 |
|
V52=(base[2]); |
436 |
|
vs_top=sup; |
437 |
|
TTL:; |
438 |
|
{object V53; |
439 |
|
if(!(number_compare(small_fixnum(0),base0[2])==0)){ |
440 |
|
goto T189;} |
441 |
|
if((V50)==Cnil){ |
442 |
|
V54= Cnil; |
443 |
|
goto T191;} |
444 |
|
V54= list(3,VV[8],(V50),list(2,VV[15],(V51))); |
445 |
|
T191:; |
446 |
|
if((V52)==Cnil){ |
447 |
|
V55= Cnil; |
448 |
|
goto T192;} |
449 |
|
V55= list(3,VV[8],(V52),list(2,VV[16],(V51))); |
450 |
|
T192:; |
451 |
|
V53= list(3,VV[14],V54,V55); |
452 |
|
goto T187; |
453 |
|
T189:; |
454 |
|
if(((V52))!=Cnil){ |
455 |
|
goto T194;} |
456 |
|
if((V50)==Cnil){ |
457 |
|
V53= Cnil; |
458 |
|
goto T187;} |
459 |
|
base[3]= base0[2]; |
460 |
|
base[4]= (V51); |
461 |
|
vs_top=(vs_base=base+3)+2; |
462 |
|
(void) (*Lnk23)(); |
463 |
|
vs_top=sup; |
464 |
|
V56= vs_base[0]; |
465 |
|
V53= list(3,VV[8],(V50),V56); |
466 |
|
goto T187; |
467 |
|
T194:; |
468 |
|
base[3]= base0[2]; |
469 |
|
base[4]= (V51); |
470 |
|
vs_top=(vs_base=base+3)+2; |
471 |
|
(void) (*Lnk24)(); |
472 |
|
vs_top=sup; |
473 |
|
V57= vs_base[0]; |
474 |
|
V58= list(3,VV[8],(V52),V57); |
475 |
|
if((V50)==Cnil){ |
476 |
|
V59= Cnil; |
477 |
|
goto T202;} |
478 |
|
V59= list(3,VV[8],(V50),list(2,VV[17],(V52))); |
479 |
|
T202:; |
480 |
|
V53= list(3,VV[14],/* INLINE-ARGS */V58,V59); |
481 |
|
T187:; |
482 |
|
base0[2]= small_fixnum(0); |
483 |
|
base[3]= (V53); |
484 |
|
vs_top=(vs_base=base+3)+1; |
485 |
|
return;} |
486 |
|
} |
487 |
|
} |
488 |
|
static LnkT24(){ call_or_link(VV[24],&Lnk24);} /* MAKE-CDXR */ |
489 |
|
static LnkT23(){ call_or_link(VV[23],&Lnk23);} /* MAKE-CAXR */ |
490 |
|
static LnkT22(){ call_or_link(VV[22],&Lnk22);} /* DESTRUCTURE */ |
491 |
|
static LnkT21(){ call_or_link(VV[21],&Lnk21);} /* EXTRACT-DECLARATIONS */ |
492 |
|
static LnkT20(){ call_or_link(VV[20],&Lnk20);} /* DELETE */ |
493 |
|
static LnkT19(){ call_or_link(VV[19],&Lnk19);} /* DESTRUCTURE-INTERNAL */ |