

#include "BUILTIN.h"
extern OBJ _ATableFun2_4(OBJ,OBJ,OBJ);extern OBJ __ATableFun2_4;
extern OBJ _ACom_23(OBJ);extern OBJ __ACom_23;

#include "Nat.h"

#include "Char.h"

#include "Bitset.h"

#include "Array.h"
extern OBJ _APoly4SigAna_3(OBJ,OBJ,OBJ,OBJ);OBJ __APoly4SigAna_3; /* / */
extern OBJ _APoly4SigAna_4(OBJ,OBJ,OBJ,OBJ,OBJ);OBJ __APoly4SigAna_4; /* /'4 */

extern OBJ _APoly4SigAna_3(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* / */
{OBJ r;
 CPCLS(__APoly4SigAna_4,1);
 {OBJ x5;
  x5=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(__APoly4SigAna_4,2))(__APoly4SigAna_4,x1,x2);
  r=_ATableFun2_4(x5,x3,x4);}
 return r;}

extern OBJ _APoly4SigAna_4(OBJ x1,OBJ x2,OBJ x3,OBJ x4,OBJ x5) /* /'4 */
{OBJ r;
 COPY(x5,1);
 {OBJ x6;
  x6=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))METHOD(x1,3))(x1,x3,x4,x5);
  if(ISPRM(x6)){
   FRCLS(x2,1);
   r=_ACom_23(x5);
  }else{
   {OBJ x11=FLD1(x6,1);
    if(EXPRD(x6,1)){
     DSPRDF(x6);
    }else{
     COPY(x11,1);
     FRPRD(x6,1);}
    r=(*(OBJ(*)(OBJ,OBJ,OBJ))METHOD(x2,2))(x2,x11,x5);}}}
 return r;}

static OBJ _mt_5_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 DPCLS(t,r);
 INCCLS(r,0,2);
 FLDCLS(r,1)=t1;
 FLDCLS(r,2)=t2;
 return r;}

static OBJ _mt_5_2_3(OBJ t,OBJ t1,OBJ t2,OBJ t3) 
{OBJ r;
 if(EXCLS(t)){
  DSCLSF(t);
 }else{
  COPY(FLDCLS(t,1),1);
  COPY(FLDCLS(t,2),1);
  DCCLS(t,1);}
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ,OBJ))ENTRY(t))(FLDCLS(t,1),FLDCLS(t,2),t1,t2,t3);
 return r;}

init_APoly4SigAna()
{
 static int visited=0; if(visited) return; visited=1;
 init_APatterns();
 init_AAttributes();
 init_APartName();
 init_ATableFun2();
 init_AGlobSig();
 init_AComCompose();
 init_ATable();
 init_ASetByBST();
 init_AOption();
 init_ABSTree();
 init_ACom();
 init_ATree();
 init_ANat();
 init_ADArrayReduce();
 init_AVoid();
 init_ASeqMap();
 init_ASeq();
 init_ADArray();
 init_ANatMap();
 init_APair();
 init_AString();
 init_AChar();
 init_ASet();
 init_ABitset();
 init_AArray();
 init_AUniqueTable();
 init_ADeclEntry();
 init_APartNameEntry();
 init_AImpExpEntry();
 init_AObjects();
 init_AName();
 init_AGlobSigImpl();
 init_ARep();
 init_APragma();
 init_AImpl();
 init_AGlobPragma();
 init_AOcPos();
 init_AMap();
 init_AFct();
 CLS(5,_APoly4SigAna_4,__APoly4SigAna_4);
 CLS(4,_APoly4SigAna_3,__APoly4SigAna_3);
 MTH(5,0,2,_mt_5_0_2);LZYMTH(5,0,2,_mt_5_0_2);
 MTH(5,2,3,_mt_5_2_3);LZYMTH(5,2,3,_mt_5_2_3);}

