home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / gcl-1.000 / gcl-1 / gcl-1.0 / cmpnew / cmplabel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-10  |  12.4 KB  |  571 lines

  1.  
  2. #include <cmpinclude.h>
  3. #include "cmplabel.h"
  4. init_cmplabel(){do_init(VV);}
  5. /*    macro definition for NEXT-LABEL    */
  6.  
  7. static L1()
  8. {register object *base=vs_base;
  9.     register object *sup=base+VM1; VC1
  10.     vs_reserve(VM1);
  11.     check_arg(2);
  12.     vs_top=sup;
  13.     {object V1=base[0]->c.c_cdr;
  14.     if(!endp(V1))invalid_macro_call();}
  15.     base[2]= VV[0];
  16.     vs_top=(vs_base=base+2)+1;
  17.     return;
  18. }
  19. /*    macro definition for NEXT-LABEL*    */
  20.  
  21. static L2()
  22. {register object *base=vs_base;
  23.     register object *sup=base+VM2; VC2
  24.     vs_reserve(VM2);
  25.     check_arg(2);
  26.     vs_top=sup;
  27.     {object V2=base[0]->c.c_cdr;
  28.     if(!endp(V2))invalid_macro_call();}
  29.     base[2]= VV[1];
  30.     vs_top=(vs_base=base+2)+1;
  31.     return;
  32. }
  33. /*    macro definition for WT-LABEL    */
  34.  
  35. static L3()
  36. {register object *base=vs_base;
  37.     register object *sup=base+VM3; VC3
  38.     vs_reserve(VM3);
  39.     check_arg(2);
  40.     vs_top=sup;
  41.     {object V3=base[0]->c.c_cdr;
  42.     if(endp(V3))invalid_macro_call();
  43.     base[2]= (V3->c.c_car);
  44.     V3=V3->c.c_cdr;
  45.     if(!endp(V3))invalid_macro_call();}
  46.     V4= list(2,VV[3],base[2]);
  47.     base[3]= list(3,VV[2],/* INLINE-ARGS */V4,list(4,VV[4],VV[5],list(2,VV[6],base[2]),VV[7]));
  48.     vs_top=(vs_base=base+3)+1;
  49.     return;
  50. }
  51. /*    macro definition for WT-GO    */
  52.  
  53. static L4()
  54. {register object *base=vs_base;
  55.     register object *sup=base+VM4; VC4
  56.     vs_reserve(VM4);
  57.     check_arg(2);
  58.     vs_top=sup;
  59.     {object V5=base[0]->c.c_cdr;
  60.     if(endp(V5))invalid_macro_call();
  61.     base[2]= (V5->c.c_car);
  62.     V5=V5->c.c_cdr;
  63.     if(!endp(V5))invalid_macro_call();}
  64.     V6= list(3,VV[9],base[2],Ct);
  65.     base[3]= list(3,VV[8],/* INLINE-ARGS */V6,list(4,VV[10],VV[11],list(2,VV[6],base[2]),VV[12]));
  66.     vs_top=(vs_base=base+3)+1;
  67.     return;
  68. }
  69. /*    local entry for function UNWIND-BDS    */
  70.  
  71. static object LI5(V9,V10)
  72.  
  73. object V9;object V10;
  74. {     VMB5 VMS5 VMV5
  75. TTL:;
  76.     if(!(type_of(symbol_value(VV[13]))==t_cons)){
  77.     goto T1;}
  78.     princ_str("\n    restore_avma; ",VV[14]);
  79. T1:;
  80.     if(((V9))==Cnil){
  81.     goto T5;}
  82.     princ_str("\n    bds_unwind(V",VV[14]);
  83.     (void)((*(LnkLI40))((V9)));
  84.     princ_str(");",VV[14]);
  85. T5:;
  86.     {register object V11;
  87.     register int V12;
  88.     V11= (V10);
  89.     V12= 0;
  90. T14:;
  91.     V13 = make_fixnum(V12);
  92.     if(!(number_compare(V13,(V11))>=0)){
  93.     goto T15;}
  94.     {object V14 = Cnil;
  95.     VMR5(V14)}
  96. T15:;
  97.     princ_str("\n    bds_unwind1;",VV[14]);
  98.     V12= (V12)+1;
  99.     goto T14;}
  100. }
  101. /*    local entry for function UNWIND-EXIT    */
  102.  
  103. static object LI6(V15,va_alist)
  104.     object V15;
  105.     va_dcl 
  106. {    
  107.     va_list ap;
  108.     int narg = VFUN_NARGS; VMB6 VMS6 VMV6
  109.     bds_check;
  110.     {register object V16;
  111.     object V17;
  112.     object V18;
  113.     if(narg <1) too_few_arguments();
  114.     V16= V15;
  115.     narg = narg - 1;
  116.     if (narg <= 0) goto T24;
  117.     else {
  118.     va_start(ap);
  119.     V17= va_arg(ap,object);}
  120.     if (--narg <= 0) goto T25;
  121.     else {
  122.     V18= va_arg(ap,object);}
  123.     --narg; goto T26;
  124. T24:;
  125.     V17= Cnil;
  126. T25:;
  127.     V18= Cnil;
  128. T26:;
  129.     {register object V19;
  130.     register int V20;
  131.     object V21;
  132.     bds_bind(VV[15],symbol_value(VV[15]));
  133.     V19= Cnil;
  134.     V20= 0;
  135.     V21= Cnil;
  136.     if(symbol_value(VV[16])==Cnil){
  137.     goto T32;}
  138.     (void)((*(LnkLI41))((V16),(V18)));
  139. T32:;
  140.     if(!(((V16))==(VV[17]))){
  141.     goto T33;}
  142.     if((symbol_value(VV[18]))==(VV[19])){
  143.     goto T33;}
  144.     if((symbol_value(VV[18]))==(VV[20])){
  145.     goto T33;}
  146.     princ_str("\n    ",VV[14]);
  147.     (void)((*(LnkLI42))());
  148. T33:;
  149.     if(!(type_of(symbol_value(VV[18]))==t_cons)){
  150.     goto T43;}
  151.     if(!((car(symbol_value(VV[18])))==(VV[21]))){
  152.     goto T43;}
  153.     (void)((*(LnkLI43))((V16),cadr(symbol_value(VV[18]))));
  154.     if(!(((V16))==(Ct))){
  155.     goto T41;}
  156.     {object V22 = Cnil;
  157.     bds_unwind1;
  158.     VMR6(V22)}
  159. T43:;
  160.     if(!(type_of(symbol_value(VV[18]))==t_cons)){
  161.     goto T41;}
  162.     if(!((car(symbol_value(VV[18])))==(VV[22]))){
  163.     goto T41;}
  164.     (void)((*(LnkLI44))((V16),cadr(symbol_value(VV[18]))));
  165.     if(((V16))!=Cnil){
  166.     goto T41;}
  167.     {object V23 = Cnil;
  168.     bds_unwind1;
  169.     VMR6(V23)}
  170. T41:;
  171.     {object V24;
  172.     register object V25;
  173.     V24= symbol_value(VV[23]);
  174.     V25= car((V24));
  175. T60:;
  176.     if(!(endp((V24)))){
  177.     goto T61;}
  178.     {object V26 = (*(LnkLI45))();
  179.     bds_unwind1;
  180.     VMR6(V26)}
  181. T61:;
  182.     if(!(type_of((V25))==t_cons)){
  183.     goto T67;}
  184.     if(!(((V25))==(symbol_value(VV[24])))){
  185.     goto T70;}
  186.     if(!(type_of(symbol_value(VV[18]))==t_cons)){
  187.     goto T74;}
  188.     if((car(symbol_value(VV[18])))==(VV[21])){
  189.     goto T73;}
  190.     if(!((car(symbol_value(VV[18])))==(VV[22]))){
  191.     goto T74;}
  192. T73:;
  193.     V27 = make_fixnum(V20);
  194.     (void)((*(LnkLI46))((V19),V27));
  195.     goto T72;
  196. T74:;
  197.     if(((V19))!=Cnil){
  198.     goto T80;}
  199.     if(!((V20)>0)){
  200.     goto T81;}
  201. T80:;
  202.     if(!(type_of((V16))==t_cons)){
  203.     goto T86;}
  204.     if(!((car((V16)))==(VV[25]))){
  205.     goto T89;}
  206.     V29= structure_ref(cadr((V16)),VV[25],1);
  207.     {register object x= /* INLINE-ARGS */V29,V28= VV[26];
  208.     while(!endp(V28))
  209.     if(eql(x,V28->c.c_car)){
  210.     goto T85;
  211.     }else V28=V28->c.c_cdr;}
  212. T89:;
  213.     {register object x= car((V16)),V30= VV[27];
  214.     while(!endp(V30))
  215.     if(eql(x,V30->c.c_car)){
  216.     goto T93;
  217.     }else V30=V30->c.c_cdr;
  218.     goto T86;}
  219. T93:;
  220. T85:;
  221.     if(!(type_of(symbol_value(VV[18]))==t_cons)){
  222.     goto T95;}
  223.     if(!((car(symbol_value(VV[18])))==(VV[28]))){
  224.     goto T95;}
  225.     base[2]= (V16);
  226.     vs_top=(vs_base=base+2)+1;
  227.     (void) (*Lnk47)();
  228.     vs_top=sup;
  229.     V31 = make_fixnum(V20);
  230.     (void)((*(LnkLI46))((V19),V31));
  231.     goto T72;
  232. T95:;
  233.     {object V32;
  234.     V32= list(2,VV[29],(VFUN_NARGS=0,(*(LnkLI48))()));
  235.     bds_bind(VV[18],(V32));
  236.     base[3]= (V16);
  237.     vs_top=(vs_base=base+3)+1;
  238.     (void) (*Lnk47)();
  239.     vs_top=sup;
  240.     bds_unwind1;
  241.     V33 = make_fixnum(V20);
  242.     (void)((*(LnkLI46))((V19),V33));
  243.     base[2]= (V32);
  244.     vs_top=(vs_base=base+2)+1;
  245.     (void) (*Lnk47)();
  246.     vs_top=sup;
  247.     goto T72;}
  248. T86:;
  249.     V34 = make_fixnum(V20);
  250.     (void)((*(LnkLI46))((V19),V34));
  251.     base[2]= (V16);
  252.     vs_top=(vs_base=base+2)+1;
  253.     (void) (*Lnk47)();
  254.     vs_top=sup;
  255.     goto T72;
  256. T81:;
  257.     base[2]= (V16);
  258.     vs_top=(vs_base=base+2)+1;
  259.     (void) (*Lnk47)();
  260.     vs_top=sup;
  261. T72:;
  262.     if(((V17))==Cnil){
  263.     goto T109;}
  264.     if(!(type_of(symbol_value(VV[13]))==t_cons)){
  265.     goto T112;}
  266.     princ_str("\n    restore_avma; ",VV[14]);
  267. T112:;
  268.     princ_str("\n    ",VV[14]);
  269.     if(type_of(symbol_value(VV[24]))!=t_cons)FEwrong_type_argument(Scons,symbol_value(VV[24]));
  270.     (symbol_value(VV[24]))->c.c_cdr = Ct;
  271.     princ_str("goto T",VV[14]);
  272.     (void)((*(LnkLI40))(car(symbol_value(VV[24]))));
  273.     princ_char(59,VV[14]);
  274. T109:;
  275.     {object V35 = Cnil;
  276.     bds_unwind1;
  277.     VMR6(V35)}
  278. T70:;
  279.     V17= Ct;
  280.     goto T65;
  281. T67:;
  282.     if(!(type_of((V25))==t_fixnum||
  283. type_of((V25))==t_bignum||
  284. type_of((V25))==t_ratio||
  285. type_of((V25))==t_shortfloat||
  286. type_of((V25))==t_longfloat||
  287. type_of((V25))==t_complex)){
  288.     goto T123;}
  289.     V19= (V25);
  290.     V20= 0;
  291.     goto T65;
  292. T123:;
  293.     if(!(((V25))==(VV[30]))){
  294.     goto T129;}
  295.     V20= (V20)+(1);
  296.     goto T65;
  297. T129:;
  298.     if(!(((V25))==(VV[19]))){
  299.     goto T133;}
  300.     if(!((symbol_value(VV[24]))==(VV[19]))){
  301.     goto T65;}
  302.     base[2]= (V16);
  303.     vs_top=(vs_base=base+2)+1;
  304.     (void) (*Lnk47)();
  305.     vs_top=sup;
  306.     V36 = make_fixnum(V20);
  307.     (void)((*(LnkLI46))((V19),V36));
  308.     princ_str("\n    return;",VV[14]);
  309.     {object V37 = Cnil;
  310.     bds_unwind1;
  311.     VMR6(V37)}
  312. T133:;
  313.     if(!(((V25))==(VV[31]))){
  314.     goto T143;}
  315.     if(!(type_of((V16))==t_cons)){
  316.     goto T145;}
  317.     {register object x= car((V16)),V38= VV[32];
  318.     while(!endp(V38))
  319.     if(eql(x,V38->c.c_car)){
  320.     goto T149;
  321.     }else V38=V38->c.c_cdr;
  322.     goto T145;}
  323. T149:;
  324.     if(!(type_of(symbol_value(VV[18]))==t_cons)){
  325.     goto T151;}
  326.     if(!((car(symbol_value(VV[18])))==(VV[28]))){
  327.     goto T151;}
  328.     base[2]= (V16);
  329.     vs_top=(vs_base=base+2)+1;
  330.     (void) (*Lnk47)();
  331.     vs_top=sup;
  332.     V16= symbol_value(VV[18]);
  333.     goto T145;
  334. T151:;
  335.     if((symbol_value(VV[33]))==Cnil){
  336.     goto T160;}
  337.     base[2]= list(2,VV[29],(VFUN_NARGS=0,(*(LnkLI48))()));
  338.     goto T158;
  339. T160:;
  340.     base[2]= list(2,VV[28],(*(LnkLI49))());
  341. T158:;
  342.     bds_bind(VV[18],base[2]);
  343.     base[3]= (V16);
  344.     vs_top=(vs_base=base+3)+1;
  345.     (void) (*Lnk47)();
  346.     vs_top=sup;
  347.     V16= (VV[18]->s.s_dbind);
  348.     bds_unwind1;
  349. T145:;
  350.     princ_str("\n    frs_pop();",VV[14]);
  351.     goto T65;
  352. T143:;
  353.     {object V39;
  354.     V39= (((V25))==(VV[34])?Ct:Cnil);
  355.     if(((V39))==Cnil){
  356.     goto T168;}
  357.     goto T65;
  358. T168:;
  359.     if(!(((V25))==(VV[35]))){
  360.     goto T171;}
  361.     V17= Ct;
  362.     goto T65;
  363. T171:;
  364.     {register object x= (V25),V40= VV[36];
  365.     while(!endp(V40))
  366.     if(type_of(V40->c.c_car)==t_cons &&eql(x,V40->c.c_car->c.c_car)){
  367.     V21= (V40->c.c_car);
  368.     goto T177;
  369.     }else V40=V40->c.c_cdr;
  370.     V21= Cnil;}
  371. T177:;
  372.     if(((V21))==Cnil){
  373.     goto T175;}
  374.     {object V41;
  375.     setq(VV[37],number_plus(symbol_value(VV[37]),small_fixnum(1)));
  376.     V41= symbol_value(VV[37]);{object V42;
  377.     V42= symbol_value(VV[24]);
  378.     if(!((V42)==(car((V21))))){
  379.     goto T181;}}
  380.     goto T180;
  381. T181:;
  382.     (void)((*(LnkLI50))());
  383. T180:;
  384.     V21= cdr((V21));
  385.     princ_str("\n    {",VV[14]);
  386.     V43= (*(LnkLI51))(car((V21)));
  387.     (void)((*(LnkLI40))(/* INLINE-ARGS */V43));
  388.     princ_char(86,VV[14]);
  389.     (void)((*(LnkLI40))((V41)));
  390.     princ_str(" = ",VV[14]);
  391.     (void)((
  392.     V44 = cdr((V21)),
  393.     (type_of(V44) == t_sfun ?(*(object (*)())((V44)->sfn.sfn_self)):
  394.     (fcall.fun=(V44),fcall.argd=1,fcalln))((V16))));
  395.     princ_char(59,VV[14]);
  396.     V45 = make_fixnum(V20);
  397.     (void)((*(LnkLI46))((V19),V45));
  398.     princ_str("\n    VMR",VV[14]);
  399.     (void)((*(LnkLI40))(symbol_value(VV[38])));
  400.     princ_str("(V",VV[14]);
  401.     (void)((*(LnkLI40))((V41)));
  402.     princ_str(")}",VV[14]);
  403.     {object V46 = Cnil;
  404.     bds_unwind1;
  405.     VMR6(V46)}}
  406. T175:;
  407.     (void)((*(LnkLI45))());}
  408. T65:;
  409.     V24= cdr((V24));
  410.     V25= car((V24));
  411.     goto T60;}}}
  412.     }
  413. /*    local entry for function UNWIND-NO-EXIT    */
  414.  
  415. static object LI7(V48)
  416.  
  417. register object V48;
  418. {     VMB7 VMS7 VMV7
  419. TTL:;
  420.     {register object V49;
  421.     register int V50;
  422.     V49= Cnil;
  423.     V50= 0;
  424.     {register object V51;
  425.     register object V52;
  426.     V51= symbol_value(VV[23]);
  427.     V52= car((V51));
  428. T211:;
  429.     if(!(endp((V51)))){
  430.     goto T212;}
  431.     {object V53 = (*(LnkLI45))();
  432.     VMR7(V53)}
  433. T212:;
  434.     if(!(type_of((V52))==t_cons)){
  435.     goto T218;}
  436.     if(!(((V52))==((V48)))){
  437.     goto T216;}
  438.     V54 = make_fixnum(V50);
  439.     (void)((*(LnkLI46))((V49),V54));
  440.     {object V55 = Cnil;
  441.     VMR7(V55)}
  442. T218:;
  443.     if(!(type_of((V52))==t_fixnum||
  444. type_of((V52))==t_bignum||
  445. type_of((V52))==t_ratio||
  446. type_of((V52))==t_shortfloat||
  447. type_of((V52))==t_longfloat||
  448. type_of((V52))==t_complex)){
  449.     goto T224;}
  450.     V49= (V52);
  451.     V50= 0;
  452.     goto T216;
  453. T224:;
  454.     if(!(((V52))==(VV[30]))){
  455.     goto T230;}
  456.     V50= (V50)+(1);
  457.     goto T216;
  458. T230:;
  459.     {register object x= (V52),V56= VV[39];
  460.     while(!endp(V56))
  461.     if(eql(x,V56->c.c_car)){
  462.     goto T235;
  463.     }else V56=V56->c.c_cdr;
  464.     goto T234;}
  465. T235:;
  466.     if(!(((V48))==((V52)))){
  467.     goto T237;}
  468.     V57 = make_fixnum(V50);
  469.     (void)((*(LnkLI46))((V49),V57));
  470.     {object V58 = Cnil;
  471.     VMR7(V58)}
  472. T237:;
  473.     (void)((*(LnkLI45))());
  474.     goto T216;
  475. T234:;
  476.     if(!(((V52))==(VV[31]))){
  477.     goto T241;}
  478.     princ_str("\n    frs_pop();",VV[14]);
  479.     goto T216;
  480. T241:;
  481.     if(!(((V52))==(VV[34]))){
  482.     goto T245;}
  483.     if(!(((V48))==(VV[34]))){
  484.     goto T248;}
  485.     V59 = make_fixnum(V50);
  486.     (void)((*(LnkLI46))((V49),V59));
  487.     {object V60 = Cnil;
  488.     VMR7(V60)}
  489. T248:;
  490.     (void)((*(LnkLI45))());
  491.     goto T216;
  492. T245:;
  493.     {object V61;
  494.     V61= (((V52))==(VV[35])?Ct:Cnil);
  495.     if(((V61))==Cnil){
  496.     goto T253;}
  497.     goto T216;
  498. T253:;
  499.     (void)((*(LnkLI45))());}
  500. T216:;
  501.     V51= cdr((V51));
  502.     V52= car((V51));
  503.     goto T211;}}
  504. }
  505. /*    local entry for function TAIL-RECURSION-POSSIBLE    */
  506.  
  507. static object LI8()
  508.  
  509. {     VMB8 VMS8 VMV8
  510. TTL:;
  511.     {register object V62;
  512.     register object V63;
  513.     V62= symbol_value(VV[23]);
  514.     V63= car((V62));
  515. T263:;
  516.     if(!(endp((V62)))){
  517.     goto T264;}
  518.     {object V64 = (*(LnkLI45))();
  519.     VMR8(V64)}
  520. T264:;
  521.     if(!(((V63))==(VV[34]))){
  522.     goto T270;}
  523.     {object V65 = Ct;
  524.     VMR8(V65)}
  525. T270:;
  526.     if(type_of((V63))==t_fixnum||
  527. type_of((V63))==t_bignum||
  528. type_of((V63))==t_ratio||
  529. type_of((V63))==t_shortfloat||
  530. type_of((V63))==t_longfloat||
  531. type_of((V63))==t_complex){
  532.     goto T272;}
  533.     if(((V63))==(VV[30])){
  534.     goto T272;}
  535.     if(!(((V63))==(VV[31]))){
  536.     goto T273;}
  537. T272:;
  538.     {object V66 = Cnil;
  539.     VMR8(V66)}
  540. T273:;
  541.     {register object V67;
  542.     if(!(type_of((V63))==t_cons)){
  543.     goto T280;}
  544.     V67= Ct;
  545.     goto T279;
  546. T280:;
  547.     V67= (((V63))==(VV[35])?Ct:Cnil);
  548. T279:;
  549.     if(((V67))==Cnil){
  550.     goto T283;}
  551.     goto T268;
  552. T283:;
  553.     (void)((*(LnkLI45))());}
  554. T268:;
  555.     V62= cdr((V62));
  556.     V63= car((V62));
  557.     goto T263;}
  558. }
  559. static object  LnkTLI51(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[51],&LnkLI51,1,ap);} /* REP-TYPE */
  560. static object  LnkTLI50(){return call_proc0(VV[50],&LnkLI50);} /* WFS-ERROR */
  561. static object  LnkTLI49(){return call_proc0(VV[49],&LnkLI49);} /* VS-PUSH */
  562. static object  LnkTLI48(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_vproc(VV[48],&LnkLI48,ap);} /* CS-PUSH */
  563. static LnkT47(){ call_or_link(VV[47],&Lnk47);} /* SET-LOC */
  564. static object  LnkTLI46(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[46],&LnkLI46,2,ap);} /* UNWIND-BDS */
  565. static object  LnkTLI45(){return call_proc0(VV[45],&LnkLI45);} /* BABOON */
  566. static object  LnkTLI44(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[44],&LnkLI44,2,ap);} /* SET-JUMP-FALSE */
  567. static object  LnkTLI43(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[43],&LnkLI43,2,ap);} /* SET-JUMP-TRUE */
  568. static object  LnkTLI42(){return call_proc0(VV[42],&LnkLI42);} /* RESET-TOP */
  569. static object  LnkTLI41(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[41],&LnkLI41,2,ap);} /* RECORD-CALL-INFO */
  570. static object  LnkTLI40(va_alist)va_dcl{va_list ap;va_start(ap);return(object )call_proc(VV[40],&LnkLI40,1,ap);} /* WT1 */
  571.