示例#1
0
文件: ut_bust.c 项目: Gruelty/urbit
/* logic
*/
  u2_noun                                                         //  transfer
  j2_mcx(Pt6, ut, bust)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_noun dib)                              //  retain
  {
    u2_noun yam = j2_mcy(Pt6, ut, burn)(wir_r, van, sut);
    u2_noun yib = u2_bc
      (wir_r,
       u2_bc(wir_r, u2_rx(wir_r, u2_bi_h(wir_r, u2_bi_h(wir_r, yam))),
                    u2_rx(wir_r, dib)),
       u2_rx(wir_r, u2_bi_t(wir_r, yam)));
    u2_noun woo = u2_bc(wir_r, c3__cnbc, u2_blip);
    u2_noun wox = j2_mcy(Pt6, ut, mint)(wir_r, van, sut, c3__noun, woo);
    u2_noun ret = u2_nk_nock(wir_r, yib, u2_t(wox));

    if ( u2_none == ret ) {
      return u2_bl_error(wir_r, "bust-nock");
    }
    u2_rz(wir_r, wox);
    u2_rz(wir_r, woo);
    u2_rz(wir_r, yam);

    return ret;
  }
示例#2
0
文件: ut_tack.c 项目: Gruelty/urbit
/* internals
*/
  static u2_noun                                                  //  transfer
  _tack_in(u2_wire wir_r, 
           u2_noun van,                                           //  retain
           u2_noun sut,                                           //  retain
           u2_noun peh,                                           //  retain
           u2_noun mur,                                           //  retain
           u2_atom axe)                                           //  retain
  {
    if ( u2_no == u2_dust(peh) ) {
      return u2_bc(wir_r, u2_rx(wir_r, axe), u2_rx(wir_r, mur));
    } 
    else {
      u2_noun i_peh = u2_h(peh);
      u2_noun t_peh = u2_t(peh);

      if ( (u2_yes == u2_stud(i_peh)) || (u2_no == u2_h(i_peh)) ) 
      {
        u2_noun pi_peh = (u2_yes == u2_stud(i_peh)) ? 0 : u2_h(u2_t(i_peh));
        u2_noun qi_peh = (u2_yes == u2_stud(i_peh)) ? i_peh : u2_t(u2_t(i_peh));
        u2_noun pok   = j2_mcy(Pt6, ut, fink)
                              (wir_r, van, sut, pi_peh, c3__rite, qi_peh);
        u2_noun wuf   = j2_mby(Pt6, flay)(wir_r, pok);
        u2_noun p_wuf = u2_h(wuf);
        u2_noun q_wuf = u2_t(wuf);
        u2_noun nax   = j2_mbc(Pt3, peg)(wir_r, axe, p_wuf); 
        u2_noun gav   = _tack_in(wir_r, van, q_wuf, t_peh, mur, nax);
        u2_noun p_gav = u2_h(gav);
        u2_noun q_gav = u2_t(gav);
        u2_noun qog   = u2_bc(wir_r, u2_nul, u2_rx(wir_r, qi_peh));
        u2_noun ret   = u2_bc
          (wir_r, u2_rx(wir_r, p_gav),
                  j2_mcy(Pt6, ut, heal)(wir_r, van, sut, qog, p_wuf, q_gav));

        u2_rz(wir_r, qog);
        u2_rz(wir_r, gav);
        u2_rz(wir_r, nax);
        u2_rz(wir_r, wuf);
        u2_rz(wir_r, pok);

        return ret;
      }
      else {
        u2_noun bax   = u2_t(i_peh);
        u2_noun vas   = j2_mcy(Pt6, ut, peek)(wir_r, van, sut, c3__rite, bax);
        u2_noun nax   = j2_mbc(Pt3, peg)(wir_r, axe, bax); 
        u2_noun gav   = _tack_in(wir_r, van, vas, t_peh, mur, nax);
        u2_noun p_gav = u2_h(gav);
        u2_noun q_gav = u2_t(gav);
        u2_noun ret   = u2_bc
          (wir_r, u2_rx(wir_r, p_gav),
                  j2_mcy(Pt6, ut, heal)(wir_r, van, sut, u2_nul, bax, q_gav));
        
        u2_rz(wir_r, gav);
        u2_rz(wir_r, nax);
        u2_rz(wir_r, vas);

        return ret;
      }
    }
  }
示例#3
0
文件: ut_mint.c 项目: mnemnion/urbit
  static u2_noun
  _mint_brew(u2_wire wir_r,
             u2_noun van,
             u2_noun sut,
             u2_flag tov,
             u2_noun gen)
  {
    u2_noun von;
    
    switch ( tov ) {
      default: return u2_bl_bail(wir_r, c3__fail);
      case u2_yes: 
        von = u2_rx(wir_r, van); break;
      case u2_no: 
        von = u2_bn_molt(wir_r, van, j2_ut_van_vet, u2_no, 0); break;
    }
    {
      u2_noun mil = j2_mcy(Pt6, ut, mint)(wir_r, von, sut, c3__noun, gen);
      u2_noun fol = u2_rx(wir_r, u2_t(mil));

      u2_rl_lose(wir_r, mil);
      u2_rl_lose(wir_r, von);
      return fol;
    }
  }
示例#4
0
文件: ut_play.c 项目: Gruelty/urbit
  static u2_noun                                                  //  produce
  _play_edit(u2_wire wir_r,
             u2_noun van,                                         //  retain
             u2_noun sut,                                         //  retain
             u2_noun mew,                                         //  retain
             u2_noun rag)                                         //  submit
  {
    while ( 1 ) {
      if ( u2_no == u2_dust(mew) ) {
        return rag;
      } else {
        u2_noun i_mew = u2_h(mew);
        u2_noun t_mew = u2_t(mew);
        u2_noun pi_mew = u2_h(i_mew);
        u2_noun qi_mew = u2_t(i_mew);
        u2_noun laf = _play_in(wir_r, van, sut, qi_mew);
        u2_noun ruz = j2_mcy(Pt6, ut, tock)(wir_r, van, sut, pi_mew, laf, rag);
   
        u2_rz(wir_r, laf);
        u2_rz(wir_r, rag);
        rag = u2_rx(wir_r, u2_t(ruz));
        u2_rz(wir_r, ruz);

        mew = t_mew;
      }
    }
  }
示例#5
0
文件: ut_swab.c 项目: mnemnion/urbit
/* functions
*/
  u2_noun                                                         //  produce
  j2_mcx(Pt6, ut, swab)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_noun men,                              //  retain
                        u2_noun har)                              //  retain
  {
    if ( u2_no == u2_dust(har) ) {
      return u2_nul;
    } else {
      u2_noun i_har = u2_h(har);
      u2_noun t_har = u2_t(har);
      u2_noun pi_har = u2_h(i_har);
      u2_noun qi_har = u2_t(i_har);
      u2_noun roz = j2_mcy(Pt6, ap, rake)(wir_r, pi_har);
      u2_noun peh = j2_mbc(Pt2, flop)(wir_r, roz);
      u2_noun nuk = _snub(wir_r, van, sut, peh, men, qi_har, u2_nul);
      u2_noun ret = u2_bc(wir_r, u2_bc(wir_r, peh, nuk),
                                 j2_mcx(Pt6, ut, swab)
                                    (wir_r, van, sut, men, t_har));

      u2_rz(wir_r, roz);
      return ret;
    }
  }
示例#6
0
文件: ut_conk.c 项目: MacTop/urbit
/* logic
*/
  u2_bean                                                         //  transfer
  j2_mcx(Pt6, ut, conk)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_noun got)                              //  retain
  {
    if ( u2_yes == u2ud(got) ) {
      return j2_mby(Pt6, face)(wir_r, got, sut);
    }
    else switch ( u2h(got) ) {
      default: return u2_cm_bail(c3__fail);

      case 0: {
        return u2k(sut);
      }
      case 1: {
        return j2_mby(Pt6, face)
          (wir_r, u2h(u2t(got)), 
                 j2_mcx(Pt6, ut, conk)(wir_r, van, sut, u2t(u2t(got))));
      }
      case 2: {
        u2_bean vet = u2_frag(j2_ut_van_vet, van); 
        u2_noun hed, tal, ret;

        if ( u2_yes == vet ) {
          u2_noun cel = u2nt(c3__cell, c3__noun, c3__noun);
          
          if ( u2_no == j2_mcy(Pt6, ut, nest)(wir_r, van, cel, u2_yes, sut) ) {
            return u2_bl_bail(wir_r, c3__fail);
          }
          u2z(cel);
        }
        hed = j2_mcy(Pt6, ut, peek)(wir_r, van, sut, c3__both, 2);
        tal = j2_mcy(Pt6, ut, peek)(wir_r, van, sut, c3__both, 3);

        ret = j2_mby(Pt6, cell)
          (wir_r, 
           j2_mcx(Pt6, ut, conk)(wir_r, van, hed, u2h(u2t(got))),
           j2_mcx(Pt6, ut, conk)(wir_r, van, tal, u2t(u2t(got))));

        u2z(hed);
        u2z(tal);

        return ret;
      }
    }
  }
示例#7
0
文件: ut_mull.c 项目: mnemnion/urbit
  static u2_noun                                                  //  produce
  _mull_nice(u2_wire wir_r,
             u2_noun van,                                         //  retain
             u2_noun gol,                                         //  retain
             u2_noun typ)                                         //  submit
  {
    if ( u2_no == j2_mcy(Pt6, ut, nest)(wir_r, van, gol, u2_yes, typ) ) {
      u2_noun dun = j2_mcy(Pt6, ut, dunq)(wir_r, van, "need", gol);
      u2_noun niz = j2_mcy(Pt6, ut, dunq)(wir_r, van, "have", typ);

      u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, dun));
      u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, niz));

      return u2_bl_error(wir_r, "mull-nice");
    }
    else return typ;
  }
示例#8
0
文件: ut_mull.c 项目: mnemnion/urbit
  static u2_noun                                                  //  produce
  _mull_edit(u2_wire wir_r,
             u2_noun van,                                         //  retain
             u2_noun sut,                                         //  retain
             u2_noun dox,                                         //  retain
             u2_noun mew,                                         //  retain
             u2_noun p_yom,                                       //  submit
             u2_noun q_yom)                                       //  submit
  {
    while ( 1 ) {
      if ( u2_no == u2_dust(mew) ) {
        return u2_bc(wir_r, p_yom, q_yom);
      } else {
        u2_noun i_mew = u2_h(mew);
        u2_noun t_mew = u2_t(mew);
        u2_noun pi_mew = u2_h(i_mew);
        u2_noun qi_mew = u2_t(i_mew);
        u2_noun zil = _mull_in(wir_r, van, sut, c3__noun, dox, qi_mew);
        u2_noun p_zil = u2_h(zil);
        u2_noun q_zil = u2_t(zil);
        u2_noun cuf = j2_mcy(Pt6, ut, tock)
              (wir_r, van, sut, pi_mew, p_zil, p_yom);
        u2_noun dof = j2_mcy(Pt6, ut, tock)
              (wir_r, van, sut, pi_mew, q_zil, q_yom);
        u2_noun vov = u2_sing(u2_h(cuf), u2_h(dof))
                        ? u2_bl_error(wir_r, "mull-bonk-a")
                        : 0;
       
        vov = vov;

        u2_rz(wir_r, p_yom);
        p_yom = u2_rx(wir_r, u2_t(cuf));

        u2_rz(wir_r, q_yom);
        q_yom = u2_rx(wir_r, u2_t(dof));

        u2_rz(wir_r, dof);
        u2_rz(wir_r, cuf);
        u2_rz(wir_r, zil);

        mew = t_mew;
      }
    }
  }
示例#9
0
文件: ut_gain.c 项目: mnemnion/urbit
  static u2_noun                                                  //  produce
  _gain_in(u2_wire wir_r, 
           u2_noun van,                                           //  retain
           u2_noun sut,                                           //  retain
           u2_noun gen)                                           //  retain
  {
    u2_noun p_gen, q_gen;

    if ( u2_no == u2_dust(gen) ) { 
      return u2_rx(wir_r, sut);
    } else switch ( u2_h(gen) ) {
      default: return u2_rx(wir_r, sut);

      case c3__wtts: {
        if ( u2_no == u2_mean(gen, 6, &p_gen, 7, &q_gen, 0) ) {
          return u2_bl_bail(wir_r, c3__fail);
        } else {
          u2_noun rac = j2_mcy(Pt6, ap, rake)(wir_r, q_gen);
          u2_noun hap = j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen);
          u2_noun guz = j2_mcy(Pt6, ut, seek)(wir_r, van, sut, c3__read, rac);
          u2_noun axe = u2_h(guz);
          u2_noun ret = j2_mcy(Pt6, ut, cull)
            (wir_r, van, sut, u2_yes, axe, hap);

          u2_rz(wir_r, guz);
          u2_rz(wir_r, hap);
          u2_rz(wir_r, rac);

          return ret;
        }
      }
      case c3__wtpm: {
        return _gain_wtpm(wir_r, van, sut, u2_t(gen));
      }
      case c3__zpcb: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      {
        return j2_mcx(Pt6, ut, gain)(wir_r, van, sut, q_gen);
      }
      case c3__zphs: p_gen = u2_t(gen);
      {
        return j2_mcx(Pt6, ut, gain)(wir_r, van, sut, p_gen);
      }
    }
  }
示例#10
0
文件: ut_mint.c 项目: mnemnion/urbit
  static u2_noun                                                  //  produce
  _mint_edit(u2_wire wir_r,
             u2_noun van,                                         //  retain
             u2_noun sut,                                         //  retain
             u2_noun mew,                                         //  retain
             u2_noun p_lar,                                       //  retain
             u2_noun rag,                                         //  submit
             u2_noun hej)                                         //  submit
  {
    while ( 1 ) {
      if ( u2_no == u2_dust(mew) ) {
        u2_noun gim = j2_mcy(Pt6, ut, fire)(wir_r, van, sut, rag);
        u2_noun fol = j2_mby(Pt6, hike)(wir_r, p_lar, hej);

        u2_rz(wir_r, rag);
        u2_rz(wir_r, hej);

        return u2_bc(wir_r, gim, fol);
      } else {
        u2_noun i_mew = u2_h(mew);
        u2_noun t_mew = u2_t(mew);
        u2_noun pi_mew = u2_h(i_mew);
        u2_noun qi_mew = u2_t(i_mew);
        u2_noun zil = j2_mcy(Pt6, ut, mint)(wir_r, van, sut, c3__noun, qi_mew);
        u2_noun p_zil = u2_h(zil);
        u2_noun q_zil = u2_t(zil);
        u2_noun wip = j2_mcy(Pt6, ut, tock)
          (wir_r, van, sut, pi_mew, p_zil, rag);
 
        u2_rz(wir_r, rag);
        rag = u2_rx(wir_r, u2_t(wip));

        hej = u2_bc(wir_r, u2_bc(wir_r, u2_rx(wir_r, u2_h(wip)),
                                        u2_rx(wir_r, q_zil)),
                           hej);

        u2_rz(wir_r, zil);
        u2_rz(wir_r, wip);

        mew = t_mew;
      }
    }
  }
示例#11
0
文件: ut_repo.c 项目: MacTop/urbit
/* logic
*/
  u2_noun                                                         //  transfer
  j2_mcy(Pt6, ut, repo)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut)                              //  retain
  {
    u2_noun p_sut, q_sut;

    if ( u2_no == u2_dust(sut) ) switch ( sut ) {
      default: return u2_rx(wir_r, sut);

      case c3__noun: 
        return u2_bt(wir_r, c3__fork, 
                            u2_bc(wir_r, c3__atom, u2_blip),
                            u2_bt(wir_r, c3__cell, c3__noun, c3__noun));
    }
    else switch ( u2_h(sut) ) {
      default: {
        return u2_bl_error(wir_r, "repo-flat");
      }

      case c3__bull: {
        if ( u2_no == u2_as_cell(u2_t(sut), &p_sut, &q_sut)) {
          return u2_bl_bail(wir_r, c3__fail);
        } else {
          return u2_rx(wir_r, q_sut);
        }
      }
      case c3__core: {
        if ( u2_no == u2_as_cell(u2_t(sut), &p_sut, &q_sut) ) {
          return u2_bl_bail(wir_r, c3__fail);
        } else {
          return u2_bt(wir_r, c3__cell, c3__noun, u2_rx(wir_r, p_sut));
        }
      }
      case c3__cube: {
        if ( u2_no == u2_as_cell(u2_t(sut), &p_sut, &q_sut)) {
          return u2_bl_bail(wir_r, c3__fail);
        } else {
          return u2_rx(wir_r, q_sut);
        }
      }
      case c3__face: {
        if ( u2_no == u2_as_cell(u2_t(sut), &p_sut, &q_sut)) {
          return u2_bl_bail(wir_r, c3__fail);
        } else {
          return u2_rx(wir_r, q_sut);
        }
      }
      case c3__hold: {
        p_sut = u2_t(sut);
        return j2_mcy(Pt6, ut, rest)(wir_r, van, sut, p_sut);
      }
    }
  }
示例#12
0
文件: ut_mull.c 项目: mnemnion/urbit
  static u2_noun
  _mull_doke(u2_wire wir_r,
             u2_noun van,
             u2_noun sut, 
             u2_noun gen)
  {
    u2_noun fug = j2_mcy(Pt6, ut, mint)(wir_r, van, sut, c3__noun, gen);
    u2_noun axe = _mull_coke(wir_r, u2_rx(wir_r, u2_t(fug)));

    u2_rz(wir_r, fug);
    return axe;
  }
示例#13
0
文件: ut_cull.c 项目: Gruelty/urbit
  u2_noun                                                         //  transfer
  j2_mcx(Pt6, ut, cull)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_bean pol,                              //  retain
                        u2_atom axe,                              //  retain
                        u2_noun ref)                              //  retain
  {
    if ( _1 == axe ) {
      if ( u2_yes == pol ) {
        return j2_mcy(Pt6, ut, fuse)(wir_r, van, sut, ref);
      } else {
        return j2_mcy(Pt6, ut, crop)(wir_r, van, sut, ref);
      }
    } else {
      u2_atom now = j2_mbc(Pt3, cap)(wir_r, axe);
      u2_atom lat = j2_mbc(Pt3, mas)(wir_r, axe);

      return _cull_in(wir_r, van, sut, pol, axe, ref, now, lat, u2_nul);
    }
  }
示例#14
0
文件: ut_repo.c 项目: MacTop/urbit
  u2_noun                                                         //  transfer
  j2_mc(Pt6, ut, repo)(u2_wire wir_r, 
                       u2_noun cor)                               //  retain
  {
    u2_noun sut;

    if ( u2_none == (sut = u2_frag(u2_cv_sam, cor)) ) {
      return u2_bl_bail(wir_r, c3__fail);
    } else {
      return j2_mcy(Pt6, ut, repo)(wir_r, cor, sut);
    }
  }
示例#15
0
文件: ut.c 项目: the0ther/urbit
 //  shep: show with caption and style
 //
 u2_noun                                                         //  produce
 j2_mcy(Pt6, ut, shep)(u2_wire     wir_r,
                       u2_noun     van,                          //  retain
                       const c3_c* paz_c,                        //  retain
                       u2_noun     sty,                          //  retain
                       u2_noun     mol)                          //  submit
 {
   return j2_mcy(Pt6, ut, shew)
     (wir_r, van,
             u2_bc
               (wir_r, u2_bc(wir_r, 'c', u2_bn_string(wir_r, paz_c)),
                       u2_bc(wir_r, u2_rx(wir_r, sty), mol)));
 }
示例#16
0
文件: ut_nest.c 项目: mnemnion/urbit
  static u2_flag
  _nest_dext_to(u2_wire wir_r,
                u2_noun van,
                u2_noun sut,
                u2_flag tel,
                u2_noun ref,
                u2_noun gil)
  {
    u2_flag tyn = _nest_dext_in(wir_r, van, sut, tel, ref, gil);

    if ( (u2_yes == tyn) || (u2_no == tel) ) {
      return tyn;
    } else {
      u2_noun dun = j2_mcy(Pt6, ut, dunq)(wir_r, van, "need", sut);
      u2_noun niz = j2_mcy(Pt6, ut, dunq)(wir_r, van, "have", ref);

      u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, dun));
      u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, niz));

      return u2_bl_error(wir_r, "nest-fail");
    }
  }
示例#17
0
文件: ut_fink.c 项目: cgyarvin/urbit
/* logic
*/
  u2_noun                                                         //  transfer
  j2_mcx(Pt6, ut, fink)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_noun dep,                              //  retain
                        u2_noun way,                              //  retain
                        u2_noun cog)                              //  retain
  {
    // u2_noun dun = j2_mcy(Pt6, ut, dunq)(wir_r, van, "type", sut);
    u2_noun nuc = (u2_blip == cog) 
      ? j2_mcy(Pt6, ut, shew)
          (wir_r, van,
                  u2_bc
                    (wir_r, u2_bc(wir_r, 'c', u2_bn_string(wir_r, "find-limb")),
                            9509))
      :  j2_mcy(Pt6, ut, shep)
          (wir_r, van, "find-limb", 'a', u2_rx(wir_r, cog));
    u2_noun pro;

    // u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, dun));
    u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, nuc));
    {
      u2_noun hoq = j2_mcy(Pt6, ut, find)(wir_r, van, sut, dep, way, cog);
      u2_noun fin = u2_t(hoq);

      if ( u2_nul == fin ) {
        return u2_bl_error(wir_r, "find-none");
      }
      else {
        pro = u2_rx(wir_r, u2_t(fin));
        u2_rl_lose(wir_r, hoq);
      }
    }
    // u2_bl_drop(wir_r);
    u2_bl_drop(wir_r);

    return pro;
  }
示例#18
0
文件: ut_gain.c 项目: mnemnion/urbit
  u2_noun                                                         //  transfer
  j2_mcx(Pt6, ut, gain)(u2_wire wir_r, 
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_noun gen)                              //  retain
  {
    u2_noun fiz = _gain_in(wir_r, van, sut, gen);

    if ( u2_yes == j2_mcy(Pt6, ut, orth)(wir_r, van, c3__noun, fiz) ) {
      u2_rl_lose(wir_r, fiz);
      return c3__void;
    }
    else return fiz;
  }
示例#19
0
文件: ut_swab.c 项目: mnemnion/urbit
  static u2_noun                                                  //  produce
  _snip(u2_wire wir_r,
        u2_noun van,                                              //  retain
        u2_noun sut,                                              //  retain
        u2_noun peh,                                              //  retain
        u2_noun gen)                                              //  retain
  {
    if ( u2_no == u2_dust(peh) ) {
      return u2_rx(wir_r, gen);
    } else {
      u2_noun i_peh = u2_h(peh);
      u2_noun t_peh = u2_t(peh);

      if ( u2_no == u2_dust(i_peh) ) {
        u2_noun fic = j2_mcy(Pt6, ut, fink)(wir_r, van, sut, c3__rite, i_peh);
        u2_noun fom = j2_mby(Pt6, foam)(wir_r, fic);
        u2_noun ret = _snip(wir_r, van, u2_t(fom), t_peh, gen);

        u2_rz(wir_r, fom);
        u2_rz(wir_r, fic);

        return ret;
      } else {
        u2_noun pi_peh = u2_t(i_peh);
        u2_noun vas = j2_mcy(Pt6, ut, peek)(wir_r, van, sut, c3__rite, pi_peh);
        u2_noun wan = (u2_no == u2_dust(t_peh))
                      ? j2_mcy(Pt6, ut, snap)(wir_r, van, vas, gen)
                      : u2_rx(wir_r, gen);
        u2_noun ret = _snip(wir_r, van, vas, t_peh, wan);

        u2_rz(wir_r, wan);
        u2_rz(wir_r, vas);

        return ret;
      }
    }
  }
示例#20
0
/* logic
*/
static u2_noun
_rest_in_list(u2_wire wir_r,
              u2_noun van,                                      //  retain
              u2_noun leg)                                      //  retain
{
    if ( u2_nul == leg ) {
        return u2_nul;
    } else {
        u2_noun i_leg = u2_h(leg);
        u2_noun t_leg = u2_t(leg);

        return u2_bc
               (wir_r, j2_mcy(Pt6, ut, play)(wir_r, van, u2_h(i_leg), u2_t(i_leg)),
                _rest_in_list(wir_r, van, t_leg));
    }
}
示例#21
0
文件: hill.c 项目: aaronlifton/urbit
/* _hill_print_bean(): print wrapper for flat meaning.
*/
static void
_hill_print_bean(u2_wire wir_r,
                 FILE*   fil_f,                                   //  retain
                 u2_noun ben)                                     //  retain
{
#if 0
  u2_noun wal = _hill_a_fly(wir_r, Hill->soa, ben, _hill_columns());
#else
  //  This will bail safely if the benl is bad, rather than 
  //  recursing back into _hill_nock().
  //
  u2_noun wal = j2_mcy(PitA, to, fly)(wir_r, ben, _hill_columns());
#endif
  _hill_print_wall(wir_r, fil_f, "", wal);
  u2_rz(wir_r, wal);
  return;
}
示例#22
0
文件: ut_heal.c 项目: Gruelty/urbit
  static u2_noun
  _heal_by(u2_wire wir_r,
           u2_noun van,
           u2_noun sut,
           u2_noun qog, 
           u2_noun ref)
  {
    u2_noun p_sut, q_sut;

    if ( u2_no == u2_dust(sut) ) {
      return u2_bl_error(wir_r, "heal-name");
    }
    else switch ( u2_h(sut) ) {
      default: return u2_bl_error(wir_r, "heal-name");

      case c3__core:
      {
        return u2_rx(wir_r, ref);
      }
      case c3__face: u2_bi_cell(wir_r, u2_t(sut), &p_sut, &q_sut);
      {
        if ( u2_yes == u2_sing(p_sut, u2_t(qog)) ) {
          return j2_mby(Pt6, face)(wir_r, p_sut, ref);
        }
        else return u2_bl_error(wir_r, "heal-name");
      }
      case c3__fine: 
      case c3__hold: {
        u2_noun rep = j2_mcy(Pt6, ut, repo)(wir_r, van, sut);
        u2_noun ret = _heal_by(wir_r, van, rep, qog, ref);

        u2_rz(wir_r, rep);
        return ret;
      }
      case c3__fork: u2_bi_cell(wir_r, u2_t(sut), &p_sut, &q_sut);
      {
        u2_noun dis = _heal_by(wir_r, van, p_sut, qog, ref);
        u2_noun dat = _heal_by(wir_r, van, q_sut, qog, ref);
        u2_noun ret = j2_mby(Pt6, fork)(wir_r, dis, dat);

        u2_rl_lose(wir_r, dis);
        u2_rl_lose(wir_r, dat);
        return ret;
      }
    }
  }
示例#23
0
文件: zuse.c 项目: aaronlifton/urbit
/* _zuse_dump_type(): print type with internal tools.
*/
void
_zuse_dump_type(u2_wire wir_r,
                u2_noun     pit,                                  //  retain
                const c3_c* cap_c,
                u2_noun     typ)
{
  u2_noun fut = u2_sh_look(wir_r, pit, "ut");

  if ( u2_none == fut ) {
    printf("zuse: fut failed\n");
  } else {
    u2_noun van = u2_nk_nock(wir_r, u2_rx(wir_r, pit), fut);

    j2_mcy(watt_271, ut, dupt)(wir_r, van, cap_c, typ);
    u2_rl_lose(wir_r, van);
  }
}
示例#24
0
文件: hill.c 项目: aaronlifton/urbit
/* _hill_z_mint_gen(): mint `gen` to `[type form]` with PitZ jets.
*/
static u2_noun                                                    //  produce
_hill_z_mint_gen(u2_wire wir_r,
                 u2_noun sut,                                     //  retain
                 u2_noun gol,                                     //  retain
                 u2_noun gen)                                     //  retain
{
  u2_noun gam;
  u2_noun van = u2_bc
    (wir_r, u2_bc(wir_r, 
                  c3__blur,
                  u2_bc(wir_r, u2_bq(wir_r, _0, _0, _0, _0),  // bq for 268 on
                               u2_bc(wir_r, _0, 42))),
            87);

  gam = j2_mcy(PitZ, ut, mint)(wir_r, van, sut, gol, gen);
  u2_rz(wir_r, van);

  return gam;
}
示例#25
0
文件: ut_play.c 项目: jmlubin/urbit
static u2_noun
_play_x(u2_wire wir_r,
        u2_noun van,
        u2_noun sut,
        u2_noun gen)
{
#if 1
    return _play_in(wir_r, van, sut, gen);
#else
    u2_noun zix = j2_mcy(Pt6, ut, shep)
                  (wir_r, van, "gene", 'q', u2_rx(wir_r, gen));
    u2_noun ret;

    u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, zix));

    ret = _play_in(wir_r, van, sut, gen);

    u2_bl_drop(wir_r);
    return ret;
#endif
}
示例#26
0
文件: ut_seek.c 项目: ngvrnd/urbit
  u2_noun                                                         //  transfer
  j2_mcy(Pt6, ut, seep)(u2_wire wir_r,
                        u2_noun van,                              //  retain
                        u2_noun sut,                              //  retain
                        u2_noun way,                              //  retain
                        u2_noun hyp)                              //  retain
  {
    u2_noun zar = j2_mcy(Pt6, ut, seek)(wir_r, van, sut, way, hyp);
    u2_noun p_zar = u2h(zar);
    u2_noun q_zar = u2t(zar);
    
    if ( u2_yes != u2h(q_zar) ) {
      return u2_cm_bail(c3__exit);
    }
    else {
      u2_noun ret = u2_bc(wir_r, u2_rx(wir_r, p_zar), u2_rx(wir_r, u2t(q_zar)));

      u2_rz(wir_r, zar);
      return ret;
    }
  }
示例#27
0
文件: ut_fuse.c 项目: mnemnion/urbit
  static u2_noun
  _fuse_repo(u2_wire wir_r,
             u2_noun van,
             u2_noun sut,
             u2_noun ref,
             u2_noun bix)
  {
    u2_noun rep = j2_mcy(Pt6, ut, repo)(wir_r, van, sut);
    u2_noun ret = _fuse_in(wir_r, van, rep, ref, bix);

    if ( u2_yes == u2_sing(ret, rep) ) {
      if ( c3__void == rep ) {
        return c3__void;
      } else {
        u2_rz(wir_r, rep);
        return u2_rx(wir_r, sut);
      }
    } else {
      u2_rz(wir_r, rep);
      return ret;
    }
  }
/* internals
*/
  static u2_noun                                                  //  transfer
  _tock_in(u2_wire wir_r,
           u2_noun van,                                           //  retain
           u2_noun sut,                                           //  retain
           u2_noun peh,                                           //  retain
           u2_noun mur,                                           //  retain
           u2_noun men)                                           //  retain
  {
    if ( u2_no == u2_dust(men) ) {
      return u2_bc(wir_r, u2_nul, u2_nul);
    }
    else {
      u2_noun i_men  = u2_h(men);
      u2_noun pi_men = u2_h(i_men);
      u2_noun qi_men = u2_t(i_men);
      u2_noun t_men  = u2_t(men);
      u2_noun geq    = j2_mcy(Pt6, ut, tack)(wir_r, van, pi_men, peh, mur);
      u2_noun p_geq  = u2_h(geq);
      u2_noun q_geq  = u2_t(geq);
      u2_noun mox    = _tock_in(wir_r, van, sut, peh, mur, t_men);
      u2_noun p_mox  = u2_h(mox);
      u2_noun q_mox  = u2_t(mox);
      u2_noun ret;

      ret = u2_bc(wir_r,
                  ( (u2_nul == p_mox)
                      ? u2_bc(wir_r, u2_nul, u2_rx(wir_r, p_geq))
                      : (u2_no == u2_sing(p_geq, u2_t(p_mox)))
                        ? u2_bl_bail(wir_r, c3__exit)
                        : u2_rx(wir_r, p_mox) ),
                  u2_bc(wir_r, u2_bc(wir_r, u2_rx(wir_r, q_geq),
                                            u2_rx(wir_r, qi_men)),
                               u2_rx(wir_r, q_mox)));

      u2_rz(wir_r, mox);
      u2_rz(wir_r, geq);
      return ret;
    }
  }
示例#29
0
文件: ut_tusk.c 项目: mnemnion/urbit
/* internals
*/
  static u2_noun                                                  //  transfer
  _tusk_in(u2_wire wir_r, 
           u2_noun van,                                           //  retain
           u2_noun sut,                                           //  retain
           u2_noun peh,                                           //  retain
           u2_noun boz,                                           //  retain
           u2_noun rix,                                           //  retain
           u2_atom axe)                                           //  retain
  {
    u2_noun ret;

    if ( u2_nul == peh ) {
      return j2_mcy(Pt6, ut, play)(wir_r, van, boz, rix);
    }
    else {
      u2_noun i_peh = u2_h(peh);
      u2_noun t_peh = u2_t(peh);

      if ( u2_yes == u2_stud(i_peh) ) {
        u2_noun cog = i_peh;
        u2_noun wer = j2_mcy(Pt6, ut, find)(wir_r, van, sut, c3__rite, i_peh);
        u2_noun p_wer, r_wer;

        u2_as_trel(wer, &p_wer, 0, &r_wer);
        {
          u2_noun nax = j2_mbc(Pt3, peg)(wir_r, axe, p_wer); 
          u2_noun giv = _tusk_in(wir_r, van, r_wer, t_peh, boz, rix, nax);
          u2_noun qog = u2_bc(wir_r, u2_nul, cog);
          u2_noun ret = j2_mcy(Pt6, ut, heal)
            (wir_r, van, sut, qog, p_wer, giv);

          u2_rl_lose(wir_r, nax);
          u2_rl_lose(wir_r, qog);
          u2_rl_lose(wir_r, giv);
          u2_rl_lose(wir_r, wer);

          return ret;
        }
      }
      else {
        u2_noun bax = u2_t(i_peh);
        u2_noun vas = j2_mcy(Pt6, ut, peek)(wir_r, van, sut, c3__rite, bax);
        u2_noun rox;

        if ( u2_nul == t_peh ) {
          rox = j2_mcy(Pt6, ut, snap)(wir_r, van, vas, rix);
        } else rox = u2_rx(wir_r, rix);
        
        {
          u2_noun nax = j2_mbc(Pt3, peg)(wir_r, axe, bax); 
          u2_noun giv = _tusk_in(wir_r, van, vas, t_peh, boz, rox, nax);

          ret = j2_mcy(Pt6, ut, heal)(wir_r, van, sut, u2_nul, bax, giv);

          u2_rl_lose(wir_r, rox);
          u2_rl_lose(wir_r, nax);
          u2_rl_lose(wir_r, giv);

          return ret;
        }
      }
    }
  }
示例#30
0
文件: ut_mint.c 项目: mnemnion/urbit
  static u2_noun                                                  //  produce
  _mint_in(u2_wire wir_r, 
           u2_noun van,                                           //  retain
           u2_noun sut,                                           //  retain
           u2_noun gol,                                           //  retain
           u2_noun gen)                                           //  retain
  {
    u2_noun p_gen, q_gen, r_gen;
    u2_noun ret;

    if ( (c3__void == sut) && 
         !((u2_yes == u2_dust(gen)) && (c3__zpcb == u2_h(gen))) )
    {
      if ( (u2_no == _mint_vet(wir_r, van))
           || ((u2_yes == u2_dust(gen)) && 
               ((c3__zpfs == u2_h(gen)) || (c3__zpzp == u2_h(gen)))) )
      {
        return u2_bt(wir_r, c3__void, _0, _0);
      }
      else {
        return u2_bl_error(wir_r, "mint-vain");
      }
    }

    if ( u2_no == u2_dust(gen) ) {
      u2_noun ter = u2_frag(u2_cw_con_2, van);
      u2_noun rex = j2_mcy(Pt6, ap, open)(wir_r, ter, gen);

      ret = _mint_in(wir_r, van, sut, gol, rex);
      u2_rl_lose(wir_r, rex);

      return ret;
    } 
    else if ( u2_yes == u2_dust(u2_h(gen)) ) {
      _mint_used(wir_r);
      {
        u2_noun hed = _mint_in(wir_r, van, sut, c3__noun, u2_h(gen));
        u2_noun tal = _mint_in(wir_r, van, sut, c3__noun, u2_t(gen));
        u2_noun typ = j2_mby(Pt6, cell)(wir_r, u2_h(hed), u2_h(tal));

        ret = u2_bc
          (wir_r,
           _mint_nice(wir_r, van, gol, typ),
           j2_mby(Pt6, cons)(wir_r, u2_t(hed), u2_t(tal)));

        u2_rl_lose(wir_r, hed);
        u2_rl_lose(wir_r, tal);

        return ret;
      }
    } else switch ( u2_h(gen) ) {
      default: {
        u2_noun ter = u2_frag(u2_cw_con_2, van);
        u2_noun rex = j2_mcy(Pt6, ap, open)(wir_r, ter, gen);

        if ( u2_yes == u2_sing(rex, gen) ) {
#if 1
          u2_noun zix = j2_mcy(Pt6, ut, shep)
                (wir_r, van, "gene", 'q', u2_rx(wir_r, gen));

          u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, zix));
          return u2_bl_error(wir_r, "mint-open");
#else
          u2_err(wir_r, "h", u2_h(gen));
          return u2_bl_bail(wir_r, c3__fail);
#endif
        }
        ret = _mint_in(wir_r, van, sut, gol, rex);
        u2_rl_lose(wir_r, rex);

        return ret;
      }
      
      case c3__wtcn: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun vol = _mint_corn(wir_r, van, sut, q_gen);
        u2_noun axe = _mint_coke(wir_r, vol);
        u2_noun wam = j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen);

        ret = u2_bc
          (wir_r,
           _mint_nice(wir_r, van, gol, _mint_flag(wir_r)),
           j2_mcy(Pt6, ut, fish)(wir_r, van, wam, axe));

        u2_rl_lose(wir_r, axe);
        u2_rl_lose(wir_r, wam);
        return ret;
      }
      case c3__wtcl: u2_bi_trel(wir_r, u2_t(gen), &p_gen, &q_gen, &r_gen);
      _mint_used(wir_r);
      {
        u2_noun bol = _mint_flag(wir_r);
        u2_noun nor = _mint_in(wir_r, van, sut, bol, p_gen);
        u2_noun fex = j2_mcy(Pt6, ut, gain)(wir_r, van, sut, p_gen);
        u2_noun wux = j2_mcy(Pt6, ut, lose)(wir_r, van, sut, p_gen);
        u2_noun duy = (c3__void == fex)
                        ? ( (c3__void == wux)
                             ?  u2_bc(wir_r, _0, _0)
                             :  u2_bc(wir_r, _1, _1) )
                        : ( (c3__void == wux)
                            ?  u2_bc(wir_r, _1, _0)
                            :  u2_rx(wir_r, u2_t(nor)) );
        u2_noun hiq = _mint_in(wir_r, van, fex, gol, q_gen);
        u2_noun ran = _mint_in(wir_r, van, wux, gol, r_gen);

        ret = u2_bc
          (wir_r, j2_mby(Pt6, fork)(wir_r, u2_h(hiq), u2_h(ran)),
                  _mint_cond(wir_r, duy, 
                                    u2_rx(wir_r, u2_t(hiq)),
                                    u2_rx(wir_r, u2_t(ran))));

        u2_rl_lose(wir_r, ran);
        u2_rl_lose(wir_r, hiq);
        u2_rl_lose(wir_r, nor);
        u2_rl_lose(wir_r, wux);
        u2_rl_lose(wir_r, fex);
        u2_rl_lose(wir_r, bol);

        return ret;
      }
      case c3__clhp: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun hed = _mint_in(wir_r, van, sut, c3__noun, p_gen);
        u2_noun tal = _mint_in(wir_r, van, sut, c3__noun, q_gen);
        u2_noun typ = j2_mby(Pt6, cell)(wir_r, u2_h(hed), u2_h(tal));

        ret = u2_bc
          (wir_r,
           _mint_nice(wir_r, van, gol, typ),
           j2_mby(Pt6, cons)(wir_r, u2_t(hed), u2_t(tal)));

        u2_rl_lose(wir_r, hed);
        u2_rl_lose(wir_r, tal);

        return ret;
      }
      case c3__dtts: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun typ = _mint_nice(wir_r, van, gol, _mint_flag(wir_r));

        return u2_bc
          (wir_r, 
           typ,
           u2_bt(wir_r, _5, _mint_corn(wir_r, van, sut, p_gen),
                            _mint_corn(wir_r, van, sut, q_gen)));
      }
      case c3__dtwt: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun typ = _mint_nice(wir_r, van, gol, _mint_flag(wir_r));

        return u2_bc
          (wir_r, 
           typ,
           u2_bc(wir_r, _3, _mint_corn(wir_r, van, sut, p_gen)));
      }
      case c3__dtkt: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun tom = c3__noun;
        u2_noun sam = _mint_in(wir_r, van, sut, tom, p_gen);

        ret = u2_bc
          (wir_r, 
           _mint_nice(wir_r, van, gol, tom),
           u2_bc(wir_r, _11, u2_rx(wir_r, u2_t(sam))));
        
        u2_rz(wir_r, sam);
        return ret;
      }
      case c3__dtls: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun tom = u2_bc(wir_r, c3__atom, u2_blip);
        u2_noun sam = _mint_in(wir_r, van, sut, tom, p_gen);

        ret = u2_bc
          (wir_r, 
           _mint_nice(wir_r, van, gol, tom),
           u2_bc(wir_r, _4, u2_rx(wir_r, u2_t(sam))));
        
        u2_rz(wir_r, sam);
        return ret;
      }
      case c3__dtsg: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun boc = (u2_no == u2_stud(q_gen)) 
                        ? c3__noun
                        : u2_bc(wir_r, c3__atom, u2_rx(wir_r, p_gen));
        u2_noun typ = j2_mby(Pt6, cube)(wir_r, q_gen, boc);
        u2_noun ret = 
            u2_bc(wir_r,
                  _mint_nice(wir_r, van, gol, typ),
                  u2_bc(wir_r, _1, u2_rx(wir_r, q_gen)));

        u2_rz(wir_r, boc);
        return ret;
      }
      case c3__dttr: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        return u2_bc
          (wir_r, 
           _mint_nice(wir_r, van, gol, c3__noun),
           u2_bt(wir_r, _2, _mint_corn(wir_r, van, sut, p_gen),
                            _mint_corn(wir_r, van, sut, q_gen)));
      }
      case c3__dtpt: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun typ = j2_mcy(Pt6, ut, play)(wir_r, van, sut, gen);
        u2_noun ret = 
            u2_bc(wir_r,
                  _mint_nice(wir_r, van, gol, typ),
                  u2_bc(wir_r, _1, u2_rx(wir_r, q_gen)));

        return ret;
      }
      case c3__ktdt: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun wit = j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen);
        u2_noun nep = j2_mcy(Pt6, ut, snap)(wir_r, van, wit, q_gen);
        u2_noun ret = _mint_in(wir_r, van, sut, gol, nep);

        u2_rz(wir_r, nep);
        u2_rz(wir_r, wit);
        return ret;
      }
      case c3__ktbr: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun ryd = _mint_in(wir_r, van, sut, gol, p_gen);
        u2_noun tyf = j2_mcy(Pt6, ut, wrap)(wir_r, van, u2_h(ryd), c3__iron);
        u2_noun pro = u2_bc(wir_r, tyf, u2_rx(wir_r, u2_t(ryd)));

        u2_rz(wir_r, ryd);
        return pro;
      }
      case c3__ktpm: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun ryd = _mint_in(wir_r, van, sut, gol, p_gen);
        u2_noun tyf = j2_mcy(Pt6, ut, wrap)(wir_r, van, u2_h(ryd), c3__zinc);
        u2_noun pro = u2_bc(wir_r, tyf, u2_rx(wir_r, u2_t(ryd)));

        u2_rz(wir_r, ryd);
        return pro;
      }
      case c3__ktwt: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun ryd = _mint_in(wir_r, van, sut, gol, p_gen);
        u2_noun tyf = j2_mcy(Pt6, ut, wrap)(wir_r, van, u2_h(ryd), c3__lead);
        u2_noun pro = u2_bc(wir_r, tyf, u2_rx(wir_r, u2_t(ryd)));

        u2_rz(wir_r, ryd);
        return pro;
      }
      case c3__ktts: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun vat = _mint_in(wir_r, van, sut, gol, q_gen);
     
        ret = u2_bc
          (wir_r,
           u2_bt(wir_r, c3__face,
                        u2_rx(wir_r, p_gen), 
                        u2_rx(wir_r, u2_h(vat))),
           u2_rx(wir_r, u2_t(vat)));

        u2_rl_lose(wir_r, vat);
        return ret;
      }
      case c3__ktsg: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun nef = _mint_in(wir_r, van, sut, gol, p_gen);
        u2_noun p_nef = u2_h(nef);
        u2_noun q_nef = u2_t(nef);
        u2_noun fom;

        {
          u2_noun cag = j2_mcy(Pt6, ut, burn)(wir_r, van, sut);
          u2_noun wim = u2_cn_moch(cag, u2k(q_nef));

          if ( 0 == u2h(wim) ) {
            fom = u2nc(1, u2k(u2t(wim)));
          } else {
            fom = u2k(q_nef);
          }
          u2z(wim);
        }
        ret = u2_bc(wir_r, u2_rx(wir_r, p_nef), fom);
 
        u2_rz(wir_r, nef);
        return ret;
      }
      case c3__ktls: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun hif = j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen);
        u2_noun zel = _mint_in(wir_r, van, sut, hif, q_gen);
        u2_noun ret = u2_bc(wir_r, hif, u2_rx(wir_r, u2_t(zel)));

        u2_rz(wir_r, zel);
        return ret;
      }
      case c3__tsgr: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun fid = _mint_in(wir_r, van, sut, c3__noun, p_gen);
        u2_noun p_fid = u2_h(fid);
        u2_noun q_fid = u2_t(fid);
        u2_noun dov = _mint_in(wir_r, van, p_fid, gol, q_gen);
        u2_noun p_dov = u2_h(dov);
        u2_noun q_dov = u2_t(dov);

        ret = u2_bc
          (wir_r, u2_rx(wir_r, p_dov), 
                  j2_mbc(Pt6, comb)(wir_r, q_fid, q_dov));

        u2_rl_lose(wir_r, fid); 
        u2_rl_lose(wir_r, dov);
        return ret;
      }
      case c3__cnts: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun sec = j2_mcy(Pt6, ut, seek)(wir_r, van, sut, c3__read, p_gen);
        u2_noun lar = _mint_foil(wir_r, sec);
        u2_noun p_lar = u2_h(lar);
        u2_noun q_lar = u2_t(lar);
        u2_noun pq_lar = u2_h(q_lar);
        u2_noun qq_lar = u2_t(q_lar);
        u2_noun mew = j2_mcy(Pt6, ut, swab)(wir_r, van, sut, qq_lar, q_gen);
        u2_noun yom = _mint_edit
          (wir_r, van, sut, mew, p_lar, u2_rx(wir_r, qq_lar), u2_nul);
        u2_noun p_yom = u2_h(yom);
        u2_noun q_yom = u2_t(yom);
        u2_noun ret = u2_bc
          (wir_r, _mint_nice(wir_r, van, gol, u2_rx(wir_r, p_yom)),
                  (_0 == pq_lar) ? u2_rx(wir_r, q_yom)
                                 : u2_bt(wir_r, _9,
                                                u2_rx(wir_r, pq_lar),
                                                u2_rx(wir_r, q_yom)));
                  
        u2_rz(wir_r, yom);
        u2_rz(wir_r, mew);
        u2_rz(wir_r, lar);

        return ret;
      }
      case c3__pmcl: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun ruf = u2_bt
          (wir_r, c3__clhp, 
                  u2_bc(wir_r, u2_nul, _1),
                  u2_rx(wir_r, p_gen));
        u2_noun ret = _mint_grow(wir_r, van, sut, gol, c3__zinc, ruf, q_gen);

        u2_rz(wir_r, ruf);
        return ret;
      }
      case c3__brcn: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun ruf = u2_bc(wir_r, u2_nul, _1);

        ret = _mint_grow(wir_r, van, sut, gol, c3__gold, ruf, p_gen);
        u2_rz(wir_r, ruf);

        return ret;
      }
      case c3__pmcn: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun ruf = u2_bc(wir_r, u2_nul, _1);

        ret = _mint_grow(wir_r, van, sut, gol, c3__lead, ruf, p_gen);
        u2_rz(wir_r, ruf);

        return ret;
      }
      case c3__pmls: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun ruf = u2_bt
          (wir_r, c3__clhp, 
                  u2_bc(wir_r, u2_nul, _1),
                  u2_rx(wir_r, p_gen));
        u2_noun ret = _mint_grow(wir_r, van, sut, gol, c3__iron, ruf, q_gen);

        u2_rz(wir_r, ruf);
        return ret;
      }
      case c3__sggr: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun hum = _mint_in(wir_r, van, sut, gol, q_gen);
        u2_noun bez;
      
          if ( u2_yes == u2_stud(p_gen) ) {
            bez = u2_rx(wir_r, p_gen);
          } else {
            bez = u2_bc(wir_r, u2_rx(wir_r, u2_h(p_gen)),
                               _mint_corn(wir_r, van, sut, u2_t(p_gen)));
          }
          ret = u2_bc(wir_r, 
                      u2_rx(wir_r, u2_h(hum)),
                      u2_bt(wir_r, _10, bez, u2_rx(wir_r, u2_t(hum))));
        
        u2_rl_lose(wir_r, hum);
        return ret;
      }
      case c3__zpts: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        u2_noun von = u2_bn_molt(wir_r, van, j2_ut_van_vet, u2_no, 0);
        u2_noun sev = _mint_corn(wir_r, von, sut, p_gen);

        u2_rz(wir_r, von);
        return u2_bc(wir_r, c3__noun, u2_bc(wir_r, _1, sev));
      }
      case c3__zpcm: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        return u2_bc
          (wir_r, 
           _mint_nice(wir_r, van, 
                             gol, 
                             j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen)),
           u2_bc(wir_r, 1, u2_rx(wir_r, q_gen)));
      }
      case c3__zpcb: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      {
        u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, _mint_loc(wir_r, van, p_gen)));
        {
          u2_noun hum = _mint_in(wir_r, van, sut, gol, q_gen);
          u2_noun bez = u2_bt(wir_r, c3__spot, _1, u2_rx(wir_r, p_gen));

          ret = u2_bc(wir_r, 
                      u2_rx(wir_r, u2_h(hum)),
                      u2_bt(wir_r, _10, bez, u2_rx(wir_r, u2_t(hum))));

          u2_rz(wir_r, hum);
        }
        u2_bl_drop(wir_r);
        return ret;
      }
      case c3__zpcn:
      _mint_used(wir_r);
      {
        u2_noun pet   = u2_bn_hook(wir_r, van, "seed");
        u2_noun p_pet = u2_h(pet);
        u2_noun q_pet = u2_t(pet);
        u2_noun ret;

        ret = u2_bc(wir_r, _mint_nice(wir_r, van, gol, u2_rx(wir_r, p_pet)),
                           u2_bc(wir_r, _1, u2_rx(wir_r, q_pet)));

        u2_rz(wir_r, pet);
        return ret;
      }
      case c3__zpsm: u2_bi_cell(wir_r, u2_t(gen), &p_gen, &q_gen);
      _mint_used(wir_r);
      {
        u2_noun vos   = _mint_in(wir_r, van, sut, c3__noun, q_gen);
        u2_noun zur   = j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen);
        u2_noun p_vos = u2_h(vos);
        u2_noun q_vos = u2_t(vos);
        u2_noun waz   = u2_bc(wir_r, _1, u2_rx(wir_r, p_vos));
        u2_noun cig   = j2_mby(Pt6, cell)(wir_r, zur, p_vos);
        u2_noun ret;

        ret = u2_bc(wir_r,
                    _mint_nice(wir_r, van, gol, cig),
                    j2_mby(Pt6, cons)(wir_r, waz, q_vos));

        u2_rz(wir_r, waz);
        u2_rz(wir_r, zur);
        u2_rz(wir_r, vos);

        return ret;
      }
      case c3__zpfs: p_gen = u2_t(gen);
      _mint_used(wir_r);
      {
        if ( u2_yes == _mint_vet(wir_r, van) ) {
          u2_noun zur = j2_mcy(Pt6, ut, play)(wir_r, van, sut, p_gen);
          u2_noun dun = j2_mcy(Pt6, ut, dunq)(wir_r, van, "lost", zur);

          u2_bl_push(wir_r, u2_bc(wir_r, c3__mean, dun));
          return u2_bl_error(wir_r, "mint-lost");
        }
        else {
          return u2_bt(wir_r, c3__void, _0, _0);
        }
      }
      case c3__zpzp:
      _mint_used(wir_r);
      {
        return u2_bt(wir_r, c3__void, _0, _0);
      }
    }
  }