

#include "BUILTIN.h"
extern OBJ __AString_6;

#include "Char.h"

#include "Nat.h"

#include "Denotation.h"

#include "Int.h"
extern OBJ _AStringMap_1(OBJ,OBJ);OBJ __AStringMap_1; /* * */
extern OBJ _AStringMap_2(OBJ,OBJ,OBJ);OBJ __AStringMap_2; /* *,1 */

extern OBJ _AStringMap_1(register OBJ x1,register OBJ x2) /* * */
{OBJ r;OBJ* p1=&r;
 for(;;){
  if(ISPRM(x2)){
   FRCLS(x1,1);
   *p1=__AString_6;
  }else{
   {OBJ x28=FLD1(x2,1);OBJ x29=FLD1(x2,2);OBJ x30=FLD1(x2,3);
    if(EXPRD(x2,1)){
     CPCLS(x1,1);
     {OBJ x33;
      x33=_AStringMap_2(x1,x28,x29);
      RSOME(x2,*p1);FLD1(*p1,2)=x33;
      x2=x30;p1=&FLD1(*p1,3);continue;}
    }else{
     CPPRD(x29,1);COPY(x30,1);
     CPCLS(x1,1);
     {OBJ x33;
      x33=_AStringMap_2(x1,x28,x29);
      FRPRD(x2,1);PRD1(3,*p1);FLD1(*p1,1)=x28;FLD1(*p1,2)=x33;
      x2=x30;p1=&FLD1(*p1,3);continue;}}}}
  break;}
 return r;}

extern OBJ _AStringMap_2(register OBJ x1,register OBJ x2,register OBJ x3) /* *,1 */
{OBJ r;
 for(;;){
  CPPRD(x3,1);
  {OBJ x4;OBJ x5;
   ADenotation_15(x3,x4);
   ANat_76(x2,x4,x5);
   if(ISTGPRM(x5,1)){
    FRCLS(x1,1);
    r=x3;
   }else{
    CPCLS(x1,1);
    CPPRD(x3,1);
    {OBJ x6;OBJ x7;OBJ x8;OBJ x9;
     ANat_2(x2,x6);
     ADenotation_14(x3,x2,x7);
     x8=(*(OBJ(*)(OBJ,OBJ))METHOD(x1,1))(x1,x7);
     ADenotation_9(x3,x2,x8,x9);
     x2=x6;x3=x9;continue;}}}
  break;}
 return r;}

init_AStringMap()
{
 static int visited=0; if(visited) return; visited=1;
 init_AString();
 init_AChar();
 init_ANat();
 init_ASeq();
 init_AOption();
 init_ADenotation();
 init_AInt();
 CLS(3,_AStringMap_2,__AStringMap_2);
 CLS(2,_AStringMap_1,__AStringMap_1);}

