#include <OOC/IR/VisitAll.d>
#include <__oo2c.h>
#include <setjmp.h>

void OOC_IR_VisitAll__InitVisitor(OOC_IR_VisitAll__Visitor v) {
  register OOC_INT64 i0;

  i0 = (OOC_INT64)v;
  OOC_IR__InitVisitor((OOC_IR__Visitor)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitConst(OOC_IR_VisitAll__Visitor v, OOC_IR__Const _const) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitAbs(OOC_IR_VisitAll__Visitor v, OOC_IR__Abs abs) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)abs;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1547))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1547))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1556)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitAdr(OOC_IR_VisitAll__Visitor v, OOC_IR__Adr adr) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)adr;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1650))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1650))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1658)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitAsh(OOC_IR_VisitAll__Visitor v, OOC_IR__Ash ash) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)ash;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1752))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1752))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1759)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1780))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1780))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1785)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitBinaryArith(OOC_IR_VisitAll__Visitor v, OOC_IR__BinaryArith op) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1893))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1893))+24);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1899)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1919))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1919))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1926)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitBooleanOp(OOC_IR_VisitAll__Visitor v, OOC_IR__BooleanOp op) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2038))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2038))+24);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2044)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2064))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2064))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2071)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCap(OOC_IR_VisitAll__Visitor v, OOC_IR__Cap cap) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)cap;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2171))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2171))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2180)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitConcat(OOC_IR_VisitAll__Visitor v, OOC_IR__Concat op) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
  OOC_INT32 i;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2318))+16);
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 2326)), 0);
  i2 = 0<i1;
  if (!i2) goto l8;
  i2 = (OOC_INT64)v;
  i3=0;
l3_loop:
  i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2342))+16);
  i4 = _check_pointer(i4, 2350);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 2350))*8);
  i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2342))+16);
  i5 = _check_pointer(i5, 2350);
  i6 = OOC_ARRAY_LENGTH(i5, 0);
  i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 2350))*8);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 2353)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i5, (OOC_IR__Visitor)i2);
  i3 = i3+1;
  i = i3;
  i4 = i3<i1;
  if (i4) goto l3_loop;
l8:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCompare(OOC_IR_VisitAll__Visitor v, OOC_IR__Compare op) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2463))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2463))+24);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2469)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2489))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2489))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2496)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitConstructor(OOC_IR_VisitAll__Visitor v, OOC_IR__Constructor cons) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)cons;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2612))+16);
  i2 = (OOC_INT64)v;
  OOC_IR__NewObjectDesc_Accept((OOC_IR__NewObject)i1, (OOC_IR__Visitor)i2);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2642))+24);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l4;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2670))+24);
  OOC_IR__CallDesc_Accept((OOC_IR__Call)i0, (OOC_IR__Visitor)i2);
l4:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCurrentException(OOC_IR_VisitAll__Visitor v, OOC_IR__CurrentException ce) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitDeref(OOC_IR_VisitAll__Visitor v, OOC_IR__Deref deref) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)deref;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2902))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2902))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2911)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitEntier(OOC_IR_VisitAll__Visitor v, OOC_IR__Entier entier) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)entier;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3019))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3019))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3028)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitIndex(OOC_IR_VisitAll__Visitor v, OOC_IR__Index index) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)index;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3133))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3133))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3140)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3163))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3163))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3170)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitLen(OOC_IR_VisitAll__Visitor v, OOC_IR__Len len) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)len;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3266))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3266))+24);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3273)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitNegate(OOC_IR_VisitAll__Visitor v, OOC_IR__Negate neg) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)neg;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3373))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3373))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3382)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitNewBlock(OOC_IR_VisitAll__Visitor v, OOC_IR__NewBlock _new) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)_new;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3489))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3489))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3494)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitNewObject(OOC_IR_VisitAll__Visitor v, OOC_IR__NewObject _new) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
  OOC_INT32 i;

  i0 = (OOC_INT64)_new;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3629))+16);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l11;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3678))+16);
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 3686)), 0);
  i2 = 0<i1;
  if (!i2) goto l11;
  i2 = (OOC_INT64)v;
  i3=0;
l5_loop:
  i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3705))+16);
  i4 = _check_pointer(i4, 3713);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 3713))*8);
  i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3705))+16);
  i5 = _check_pointer(i5, 3713);
  i6 = OOC_ARRAY_LENGTH(i5, 0);
  i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 3713))*8);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 3716)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i5, (OOC_IR__Visitor)i2);
  i3 = i3+1;
  i = i3;
  i4 = i3<i1;
  if (i4) goto l5_loop;
l11:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitNot(OOC_IR_VisitAll__Visitor v, OOC_IR__Not neg) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)neg;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3836))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3836))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3845)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitOdd(OOC_IR_VisitAll__Visitor v, OOC_IR__Odd odd) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)odd;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3939))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3939))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3948)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitSelectField(OOC_IR_VisitAll__Visitor v, OOC_IR__SelectField sf) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)sf;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4056))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4056))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4064)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitSelectProc(OOC_IR_VisitAll__Visitor v, OOC_IR__SelectProc sp) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)sp;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4178))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4178))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4188)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitSetMember(OOC_IR_VisitAll__Visitor v, OOC_IR__SetMember range) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)range;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4305))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4305))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4314)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4337))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4337))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4342)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitSetOp(OOC_IR_VisitAll__Visitor v, OOC_IR__SetOp op) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4444))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4444))+24);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4450)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4470))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4470))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4477)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitSetRange(OOC_IR_VisitAll__Visitor v, OOC_IR__SetRange range) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)range;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4587))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4587))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4593)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4616))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4616))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4620)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitChangeElement(OOC_IR_VisitAll__Visitor v, OOC_IR__ChangeElement ch) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)ch;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4737))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4737))+24);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4742)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4762))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4762))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4771)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitShift(OOC_IR_VisitAll__Visitor v, OOC_IR__Shift shift) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)shift;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4883))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4883))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4890)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4913))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4913))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4917)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTypeCast(OOC_IR_VisitAll__Visitor v, OOC_IR__TypeCast op) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5021))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5021))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5027)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTypeConv(OOC_IR_VisitAll__Visitor v, OOC_IR__TypeConv op) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5134))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5134))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5140)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTypeGuard(OOC_IR_VisitAll__Visitor v, OOC_IR__TypeGuard op) {
  register OOC_INT64 i0,i1;

  i0 = (OOC_INT64)op;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5249))+16);
  i1 = (OOC_INT64)v;
  OOC_IR__TypeTestDesc_Accept((OOC_IR__TypeTest)i0, (OOC_IR__Visitor)i1);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTypeTag(OOC_IR_VisitAll__Visitor v, OOC_IR__TypeTag op) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5360))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5360))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5368)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTypeTest(OOC_IR_VisitAll__Visitor v, OOC_IR__TypeTest op) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)op;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5474))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5474))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5480)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitModuleRef(OOC_IR_VisitAll__Visitor v, OOC_IR__ModuleRef modRef) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitPredefProc(OOC_IR_VisitAll__Visitor v, OOC_IR__PredefProc pproc) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitProcedureRef(OOC_IR_VisitAll__Visitor v, OOC_IR__ProcedureRef procRef) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTypeRef(OOC_IR_VisitAll__Visitor v, OOC_IR__TypeRef typeRef) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitVar(OOC_IR_VisitAll__Visitor v, OOC_IR__Var var) {

  return;
  ;
}

static void OOC_IR_VisitAll__VisitStatementSeq(OOC_IR_VisitAll__Visitor v, OOC_IR__StatementSeq statmSeq) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
  OOC_INT32 i;

  i0 = (OOC_INT64)statmSeq;
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 6063)), 0);
  i2 = 0<i1;
  if (!i2) goto l8;
  i2 = (OOC_INT64)v;
  i3=0;
l3_loop:
  i4 = _check_pointer(i0, 6085);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 6085))*8);
  i5 = _check_pointer(i0, 6085);
  i6 = OOC_ARRAY_LENGTH(i5, 0);
  i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 6085))*8);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 6088)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i5, (OOC_IR__Visitor)i2);
  i3 = i3+1;
  i = i3;
  i4 = i3<i1;
  if (i4) goto l3_loop;
l8:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitAssert(OOC_IR_VisitAll__Visitor v, OOC_IR__Assert assert) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)assert;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6215))+16);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l4;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6251))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6251))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6262)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
l4:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitAssignment(OOC_IR_VisitAll__Visitor v, OOC_IR__Assignment assignment) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)assignment;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6396))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6396))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6406)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6434))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6434))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6441)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitAssignOp(OOC_IR_VisitAll__Visitor v, OOC_IR__AssignOp assignOp) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)assignOp;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6562))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6562))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6572)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6598))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6598))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6605)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCall(OOC_IR_VisitAll__Visitor v, OOC_IR__Call call) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
  OOC_INT32 i;

  i0 = (OOC_INT64)call;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6730))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6730))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6738)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6779))+24);
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 6790)), 0);
  i2 = 0<i1;
  if (!i2) goto l8;
  i2=0;
l3_loop:
  i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6808))+24);
  i4 = _check_pointer(i4, 6819);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 6819))*8);
  i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6808))+24);
  i5 = _check_pointer(i5, 6819);
  i6 = OOC_ARRAY_LENGTH(i5, 0);
  i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 6819))*8);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 6822)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i5, (OOC_IR__Visitor)i3);
  i2 = i2+1;
  i = i2;
  i4 = i2<i1;
  if (i4) goto l3_loop;
l8:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCopy(OOC_IR_VisitAll__Visitor v, OOC_IR__Copy cp) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)cp;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6926))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6926))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6934)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6954))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6954))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6960)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCopyParameter(OOC_IR_VisitAll__Visitor v, OOC_IR__CopyParameter cp) {
  register OOC_INT64 i0,i1;

  i0 = (OOC_INT64)cp;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7073))+16);
  i1 = (OOC_INT64)v;
  OOC_IR__VarDesc_Accept((OOC_IR__Var)i0, (OOC_IR__Visitor)i1);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCopyString(OOC_IR_VisitAll__Visitor v, OOC_IR__CopyString cp) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)cp;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7196))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7196))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7204)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7224))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7224))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7230)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7250))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7250))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7261)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitExit(OOC_IR_VisitAll__Visitor v, OOC_IR__Exit exit) {

  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitForStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__ForStatm forStatm) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)forStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7459))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7459))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7464)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7490))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7490))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7497)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7523))+32);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7523))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7528)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7554))+40);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7554))+40);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7560)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7608))+48);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitIfStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__IfStatm ifStatm) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)ifStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7718))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7718))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7725)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7772))+24);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i1);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7800))+32);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l4;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7859))+32);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i0);
l4:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCase(OOC_IR_VisitAll__Visitor v, OOC_IR__Case _case) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
  OOC_INT32 i;

  i0 = (OOC_INT64)_case;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8011))+16);
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 8019)), 0);
  i2 = (OOC_INT64)v;
  i3 = 0<i1;
  if (!i3) goto l8;
  i3=0;
l3_loop:
  i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8037))+16);
  i4 = _check_pointer(i4, 8045);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 8045))*8);
  i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8037))+16);
  i5 = _check_pointer(i5, 8045);
  i6 = OOC_ARRAY_LENGTH(i5, 0);
  i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 8045))*8);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 8048)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i5, (OOC_IR__Visitor)i2);
  i3 = i3+1;
  i = i3;
  i4 = i3<i1;
  if (i4) goto l3_loop;
l8:
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8101))+24);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i2, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCaseStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__CaseStatm caseStatm) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5;
  OOC_INT32 i;

  i0 = (OOC_INT64)caseStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8241))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8241))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8249)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8295))+24);
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 8305)), 0);
  i2 = 0<i1;
  if (!i2) goto l8;
  i2=0;
l3_loop:
  i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8328))+24);
  i4 = _check_pointer(i4, 8338);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i2, i5, OOC_UINT32, 8338))*8);
  OOC_IR__CaseDesc_Accept((OOC_IR__Case)i4, (OOC_IR__Visitor)i3);
  i2 = i2+1;
  i = i2;
  i4 = i2<i1;
  if (i4) goto l3_loop;
l8:
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8381))+32);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l11;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8440))+32);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i0);
l11:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitLoopStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__LoopStatm loopStatm) {
  register OOC_INT64 i0,i1;

  i0 = (OOC_INT64)loopStatm;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8593))+16);
  i1 = (OOC_INT64)v;
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i1, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitMoveBlock(OOC_IR_VisitAll__Visitor v, OOC_IR__MoveBlock move) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)move;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8702))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8702))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8710)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8732))+24);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8732))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8738)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8760))+32);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8760))+32);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8766)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i3);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitRaise(OOC_IR_VisitAll__Visitor v, OOC_IR__Raise raise) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)raise;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8874))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8874))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8885)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitRepeatStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__RepeatStatm repeatStatm) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)repeatStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9035))+16);
  i2 = (OOC_INT64)v;
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i2, (OOC_IR__StatementSeq)i1);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9059))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9059))+24);
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9074)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitReturn(OOC_IR_VisitAll__Visitor v, OOC_IR__Return _return) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)_return;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9192))+16);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l4;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9225))+16);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9225))+16);
  i2 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9233)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i0, (OOC_IR__Visitor)i2);
l4:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitCatchClause(OOC_IR_VisitAll__Visitor v, OOC_IR__CatchClause _catch) {
  register OOC_INT64 i0,i1;

  i0 = (OOC_INT64)_catch;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9380))+24);
  i1 = (OOC_INT64)v;
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i1, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitTryStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__TryStatm tryStatm) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5;
  OOC_INT32 i;

  i0 = (OOC_INT64)tryStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9543))+16);
  i2 = (OOC_INT64)v;
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i2, (OOC_IR__StatementSeq)i1);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9585))+24);
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 9595)), 0);
  i3 = 0<i1;
  if (!i3) goto l8;
  i3=0;
l3_loop:
  i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9617))+24);
  i4 = _check_pointer(i4, 9627);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 9627))*8);
  OOC_IR__CatchClauseDesc_Accept((OOC_IR__CatchClause)i4, (OOC_IR__Visitor)i2);
  i3 = i3+1;
  i = i3;
  i4 = i3<i1;
  if (i4) goto l3_loop;
l8:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitWhileStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__WhileStatm whileStatm) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)whileStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9764))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9764))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9771)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9821))+24);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitWithStatm(OOC_IR_VisitAll__Visitor v, OOC_IR__WithStatm withStatm) {
  register OOC_INT64 i0,i1,i2,i3;

  i0 = (OOC_INT64)withStatm;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9941))+16);
  i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9941))+16);
  i3 = (OOC_INT64)v;
  OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9948)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i2, (OOC_IR__Visitor)i3);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9997))+24);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i1);
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10027))+32);
  i1 = i1!=(OOC_INT64)0;
  if (!i1) goto l4;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10088))+32);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i3, (OOC_IR__StatementSeq)i0);
l4:
  return;
  ;
}

static void OOC_IR_VisitAll__VisitProcedureList(OOC_IR_VisitAll__Visitor v, OOC_IR__ProcedureList procList) {
  register OOC_INT64 i0,i1,i2,i3,i4,i5;
  OOC_INT32 i;

  i0 = (OOC_INT64)procList;
  i = 0;
  i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 10267)), 0);
  i2 = 0<i1;
  if (!i2) goto l8;
  i2 = (OOC_INT64)v;
  i3=0;
l3_loop:
  i4 = _check_pointer(i0, 10289);
  i5 = OOC_ARRAY_LENGTH(i4, 0);
  i4 = (OOC_INT64)*(OOC_INT64*)(i4+(_check_index(i3, i5, OOC_UINT32, 10289))*8);
  OOC_IR__ProcedureDesc_Accept((OOC_IR__Procedure)i4, (OOC_IR__Visitor)i2);
  i3 = i3+1;
  i = i3;
  i4 = i3<i1;
  if (i4) goto l3_loop;
l8:
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitProcedure(OOC_IR_VisitAll__Visitor v, OOC_IR__Procedure procedure) {
  register OOC_INT64 i0,i1;

  i0 = (OOC_INT64)procedure;
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10450))+16);
  i1 = (OOC_INT64)v;
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i1, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_IR_VisitAll__VisitorDesc_VisitModule(OOC_IR_VisitAll__Visitor v, OOC_IR__Module module) {
  register OOC_INT64 i0,i1,i2;

  i0 = (OOC_INT64)module;
  i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10584))+16);
  i2 = (OOC_INT64)v;
  OOC_IR_VisitAll__VisitProcedureList((OOC_IR_VisitAll__Visitor)i2, (OOC_IR__ProcedureList)i1);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10629))+24);
  i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10641))+16);
  OOC_IR_VisitAll__VisitStatementSeq((OOC_IR_VisitAll__Visitor)i2, (OOC_IR__StatementSeq)i0);
  return;
  ;
}

void OOC_OOC_IR_VisitAll_init(void) {

  return;
  ;
}

/* --- */
