

#include "BUILTIN.h"
extern OBJ _AString_2(OBJ,OBJ);extern OBJ __AString_2;
extern OBJ _AString_4(OBJ);extern OBJ __AString_4;
extern OBJ _AString_5(OBJ);extern OBJ __AString_5;
extern OBJ __AString_6;
extern OBJ _AString_39(OBJ);extern OBJ __AString_39;

#include "Char.h"

#include "Nat.h"

#include "Denotation.h"
extern OBJ _AStringMapSeq_2(OBJ,OBJ);extern OBJ __AStringMapSeq_2;

#include "Int.h"
extern OBJ _AStringConv_1(OBJ);OBJ __AStringConv_1; /* ` */
extern OBJ _AStringConv_2(OBJ);OBJ __AStringConv_2; /* asSeq */
extern OBJ _AStringConv_3(OBJ);OBJ __AStringConv_3; /* asString */
extern OBJ _AStringConv_4(OBJ);OBJ __AStringConv_4; /* ! */
extern OBJ _AStringConv_5(OBJ);OBJ __AStringConv_5; /* explode */
extern OBJ _AStringConv_6(OBJ);OBJ __AStringConv_6; /* implode */
extern OBJ _AStringConv_7(OBJ,OBJ,OBJ,OBJ);OBJ __AStringConv_7; /* copy */
OBJ __AStringConv_8; /* `'8 */
extern OBJ _AStringConv_9(OBJ);OBJ __AStringConv_9; /* asSeq'9 */

extern OBJ _AStringConv_1(OBJ x1) /* ` */
{OBJ r;
 if(ISPRM(x1)){
  CPPRD(__AStringConv_8,1);
  r=__AStringConv_8;
 }else{
  {OBJ x52=FLD1(x1,1);OBJ x53=FLD1(x1,2);OBJ x54=FLD1(x1,3);
   CPPRD(x53,1);COPY(x54,1);
   if(ISPRM(x54)){
    if(EXPRD(x1,1)){
     DSPRD(x1);
    }else{
     DCPRD(x1,1);}
    {OBJ x56;
     ANat_6(x52,x56);
     if(ISTGPRM(x56,1)){
      r=x53;
     }else{
      {OBJ x57;
       ANat_4(x52,x57);
       ADenotation_12(x53,__ANat_5,x57,r);}}}
   }else{
    if(EXPRD(x54,1)){
     DSPRD(x54);
    }else{
     DCPRD(x54,1);}
    FRPRD(x53,1);
    CPPRD(x1,1);
    {OBJ x61;OBJ x62;
     x61=_AString_39(x1);
     ADenotation_1(x61,__AChar_2,x62);
     r=_AStringConv_7(__ANat_5,x61,x1,x62);}}}}
 return r;}

extern OBJ _AStringConv_2(OBJ x1) /* asSeq */
{OBJ r;
 CPCLS(__AStringConv_9,1);
 r=_AStringMapSeq_2(__AStringConv_9,x1);
 return r;}

extern OBJ _AStringConv_3(OBJ x1) /* asString */
{OBJ r;
 if(ISPRM(x1)){
  r=__AString_6;
 }else{
  {OBJ x20=FLD1(x1,1);OBJ x21=FLD1(x1,2);
   if(EXPRD(x1,1)){
    DSPRDF(x1);
   }else{
    COPY(x21,1);
    FRPRD(x1,1);}
   {OBJ x23;
    x23=_AStringConv_3(x21);
    r=_AString_2(x20,x23);}}}
 return r;}

extern OBJ _AStringConv_4(OBJ x1) /* ! */
{OBJ r;
 r=_AStringConv_1(x1);
 return r;}

extern OBJ _AStringConv_5(OBJ x1) /* explode */
{OBJ r;
 CPCLS(__AStringConv_9,1);
 r=_AStringMapSeq_2(__AStringConv_9,x1);
 return r;}

extern OBJ _AStringConv_6(OBJ x1) /* implode */
{OBJ r;
 r=_AStringConv_3(x1);
 return r;}

extern OBJ _AStringConv_7(register OBJ x1,register OBJ x2,register OBJ x3,register OBJ x4) /* copy */
{OBJ r;
 for(;;){
  {OBJ x5;
   ANat_76(x1,x2,x5);
   if(ISTGPRM(x5,1)){
    FREE(x3,1);
    r=x4;
   }else{
    COPY(x3,1);
    {OBJ x6;OBJ x7;OBJ x8;OBJ x9;
     ANat_2(x1,x6);
     x7=_AString_4(x3);
     x8=_AString_5(x3);
     ADenotation_25(x4,x1,x8,x9);
     x1=x6;x3=x7;x4=x9;continue;}}}
  break;}
 return r;}

extern OBJ _AStringConv_9(OBJ x1) /* asSeq'9 */
{OBJ r;
 r=x1;
 return r;}

init_AStringConv()
{
 static int visited=0; if(visited) return; visited=1;
 init_AString();
 init_AChar();
 init_ASeq();
 init_ANat();
 init_AOption();
 init_ADenotation();
 init_AStringMapSeq();
 init_AInt();
 CLS(1,_AStringConv_9,__AStringConv_9);
 DEN("",__AStringConv_8);
 CLS(4,_AStringConv_7,__AStringConv_7);
 CLS(1,_AStringConv_6,__AStringConv_6);
 CLS(1,_AStringConv_5,__AStringConv_5);
 CLS(1,_AStringConv_4,__AStringConv_4);
 CLS(1,_AStringConv_3,__AStringConv_3);
 CLS(1,_AStringConv_2,__AStringConv_2);
 CLS(1,_AStringConv_1,__AStringConv_1);}

