

#include "BUILTIN.h"
extern OBJ __ARelCmp_2;
extern OBJ __ARelCmp_4;
extern OBJ __ARelCmp_6;
extern OBJ _AOptionCompare_2(OBJ,OBJ,OBJ);OBJ __AOptionCompare_2; /* cmp */
extern OBJ _AOptionCompare_3(OBJ,OBJ,OBJ);OBJ __AOptionCompare_3; /* eq? */

extern OBJ _AOptionCompare_2(OBJ x1,OBJ x2,OBJ x3) /* cmp */
{OBJ r;
 if(ISPRM(x2)){
  FRCLS(x1,1);
  if(ISPRM(x3)){
   r=__ARelCmp_4;
  }else{
   if(EXPRD(x3,1)){
    FREE(FLD1(x3,1),1);DSPRDF(x3);
   }else{
    DCPRD(x3,1);}
   r=__ARelCmp_6;}
 }else{
  {OBJ x29=FLD1(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x29,1);
    FRPRD(x2,1);}
   if(ISPRM(x3)){
    FRCLS(x1,1);
    FREE(x29,1);
    r=__ARelCmp_2;
   }else{
    {OBJ x30=FLD1(x3,1);
     if(EXPRD(x3,1)){
      COPY(x30,1);
      DSPRDF(x3);
     }else{
      COPY(x30,2);
      FRPRD(x3,1);}
     CPCLS(x1,1);
     COPY(x29,1);
     {OBJ x31;
      x31=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x29,x30);
      if(ISTGPRM(x31,1)){
       FRCLS(x1,1);
       FREE(x29,1);
       FREE(x30,1);
       r=__ARelCmp_6;
      }else{
       {OBJ x32;
	x32=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x30,x29);
	if(ISTGPRM(x32,1)){
	 r=__ARelCmp_2;
	}else{
	 r=__ARelCmp_4;}}}}}}}}
 return r;}

extern OBJ _AOptionCompare_3(OBJ x1,OBJ x2,OBJ x3) /* eq? */
{OBJ r;
 if(ISPRM(x2)){
  FRCLS(x1,1);
  if(ISPRM(x3)){
   r=__ABUILTIN_5;
  }else{
   if(EXPRD(x3,1)){
    FREE(FLD1(x3,1),1);DSPRDF(x3);
   }else{
    DCPRD(x3,1);}
   r=__ABUILTIN_3;}
 }else{
  {OBJ x25=FLD1(x2,1);
   if(EXPRD(x2,1)){
    DSPRDF(x2);
   }else{
    COPY(x25,1);
    FRPRD(x2,1);}
   if(ISPRM(x3)){
    FRCLS(x1,1);
    FREE(x25,1);
    r=__ABUILTIN_3;
   }else{
    {OBJ x26=FLD1(x3,1);
     if(EXPRD(x3,1)){
      DSPRDF(x3);
     }else{
      COPY(x26,1);
      FRPRD(x3,1);}
     r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x1,2))(x1,x25,x26);}}}}
 return r;}

init_AOptionCompare()
{
 static int visited=0; if(visited) return; visited=1;
 init_AOption();
 init_ARelCmp();
 CLS(3,_AOptionCompare_3,__AOptionCompare_3);
 CLS(3,_AOptionCompare_2,__AOptionCompare_2);}

