/* logic */ u2_bean // transfer j2_mcx(Pt6, ut, park)(u2_wire wir_r, u2_noun van, // retain u2_noun sut, // retain u2_noun way, // retain u2_atom axe) // retain { if ( u2_no == u2_dust(sut) || c3__core != u2_h(sut) ) { return u2_bl_bail(wir_r, c3__fail); } // else if ( u2_no == u2_bn_hook(wir_r, van, "vet") ) { else if ( u2_no == u2_frag(j2_ut_van_vet, van) ) { return u2_yes; } else { u2_noun p_sut, q_sut, pq_sut; u2_bi_cell(wir_r, u2_t(sut), &p_sut, &q_sut); u2_bi_cell(wir_r, q_sut, &pq_sut, 0); if ( c3__both == way ) { if ( c3__gold == pq_sut ) { return u2_yes; } else return u2_no; } if ( c3__read == way ) { switch ( pq_sut ) { default: return u2_bl_bail(wir_r, c3__fail); case c3__gold: return u2_yes; case c3__lead: return u2_no; case c3__iron: return u2_no; case c3__zinc: return u2_and(u2_not(u2_sing(_1, axe)), u2_sing(_2, j2_mbc(Pt3, cap)(wir_r, axe))); } } else if ( c3__rite == way ) { switch ( pq_sut ) { default: return u2_bl_bail(wir_r, c3__fail); case c3__gold: return u2_yes; case c3__lead: return u2_no; case c3__iron: return u2_and(u2_not(u2_sing(_1, axe)), u2_sing(_2, j2_mbc(Pt3, cap)(wir_r, axe))); case c3__zinc: return u2_no; } } else if ( c3__free == way ) { return u2_yes; } else return u2_bl_bail(wir_r, c3__fail); } }
/* _lily_hike_belt_r(): factor (pac) right. */ static u2_list // transfer _lily_hike_belt_r(u2_ray wir_r, u2_list pac) // retain { if ( (u2_nul == pac) ) { return u2_nul; } else { u2_axis axis = u2_h(u2_h(pac)); u2_tool tool = u2_t(u2_h(pac)); u2_list belt_r = _lily_hike_belt_r(wir_r, u2_t(pac)); { if ( (_1 != axis) && (u2_yes == u2_sing(_3, j2_mbc(Pt3, cap)(wir_r, axis))) ) { u2_axis axis_tap = j2_mbc(Pt3, mas)(wir_r, axis); return u2_bc(wir_r, u2_bc(wir_r, u2_rx(wir_r, axis_tap), u2_rx(wir_r, tool)), belt_r); } else return belt_r; } } }
/* _lily_hike_belt_l(): factor (pac) left. */ static u2_list _lily_hike_belt_l(u2_ray wir_r, u2_list pac) { if ( (u2_nul == pac) ) { return u2_nul; } else { u2_axis axis = u2_h(u2_h(pac)); u2_tool tool = u2_t(u2_h(pac)); u2_list belt_l = _lily_hike_belt_l(wir_r, u2_t(pac)); { if ( (_1 != axis) && (u2_yes == u2_sing(_2, j2_mbc(Pt3, cap)(wir_r, axis))) ) { u2_axis axis_tap = j2_mbc(Pt3, mas)(wir_r, axis); return u2_bc(wir_r, u2_bc(wir_r, u2_rx(wir_r, axis_tap), u2_rx(wir_r, tool)), belt_l); } else return belt_l; } } }
/* functions */ u2_bean j2_mcc(Pt4, in, has)(u2_wire wir_r, u2_noun a, // retain u2_noun b) // retain { if ( u2_nul == a ) { return u2_no; } else { u2_noun l_a, n_a, r_a; if ( (u2_no == u2_mean(a, 2, &n_a, 6, &l_a, 7, &r_a, 0)) ) { return u2_bl_bail(wir_r, c3__exit); } else { if ( (u2_yes == u2_sing(b, n_a)) ) { return u2_yes; } else { if ( u2_yes == j2_mbc(Pt3, hor)(wir_r, b, n_a) ) { return j2_mcc(Pt4, in, has)(wir_r, l_a, b); } else return j2_mcc(Pt4, in, has)(wir_r, r_a, b); } } } }
/* functions */ u2_flag j2_mcc(Pt4, by, has)(u2_wire wir_r, u2_noun a, // retain u2_noun b) // retain { if ( u2_nul == a ) { return u2_no; } else { u2_noun l_a, n_a, r_a; u2_noun pn_a, qn_a; if ( (u2_no == u2_as_trel(a, &n_a, &l_a, &r_a)) || (u2_no == u2_as_cell(n_a, &pn_a, &qn_a) ) ) { return u2_none; } else { if ( (u2_yes == u2_sing(b, pn_a)) ) { return u2_yes; } else { if ( u2_yes == j2_mbc(Pt3, gor)(wir_r, b, pn_a) ) { return j2_mcc(Pt4, by, has)(wir_r, l_a, b); } else return j2_mcc(Pt4, by, has)(wir_r, r_a, b); } } } }
/* _unix_desk_sync_into(): sync external changes to desk. */ static void _unix_desk_sync_into(u2_noun who, u2_noun hox, u2_noun syd, u2_udir* dir_u) { u2_noun xun, bur, doz, fav, pax; xun = _unix_dir_ankh(dir_u); bur = _unix_desk_peek(hox, u2k(syd), u2k(u2A->wen)); if ( (u2_no == u2_sing(u2h(xun), u2h(bur)))) //&& // (u2_no == _unix_ankh_sing(xun, bur)) ) { doz = u2_dc("cost", xun, bur); pax = u2nq(u2_blip, c3__sync, u2k(u2A->sen), u2_nul); fav = u2nq(c3__into, who, syd, u2nc(u2_yes, doz)); u2_reck_plan(u2A, pax, fav); } else { u2z(who); u2z(syd); u2z(xun); u2z(bur); } }
static u2_flag _nest_dext(u2_wire wir_r, u2_noun van, u2_noun sut, u2_noun ref, u2_noun gil) { if ( (u2_yes == u2_sing(sut, ref)) ) { return u2_yes; } { u2_ho_jet *jet_j = &j2_mcj(Pt6, ut, nest)[0]; if ( !(jet_j->sat_s & u2_jet_memo) ) { return _nest_dext_in(wir_r, van, sut, ref, gil); } else { c3_m fun_m = u2_jet_fun_m(jet_j); u2_noun pro = u2_rl_find_cell(wir_r, fun_m, sut, ref); if ( u2_none != pro ) { return pro; } else { pro = _nest_dext_in(wir_r, van, sut, ref, gil); return u2_rl_save_cell(wir_r, fun_m, sut, ref, pro); } } } }
/* _unix_node_sing(): test node equality. */ static u2_bean _unix_node_sing(u2_noun xud, u2_noun bud) { if ( (u2_nul == xud) && (u2_nul == bud) ) { return u2_yes; } if ( (u2_nul == xud) || (u2_nul == bud) ) { return u2_no; } return u2_sing(u2t(u2t(xud)), u2t(u2t(bud))); }
/* functions */ u2_noun // produce j2_mby(Pt5, rub)(u2_wire wir_r, u2_atom a, // retain u2_atom b) // retain { u2_atom c, d, e; u2_atom w, x, y, z; u2_atom p, q; u2_atom m = j2_mbc(Pt1, add)(wir_r, a, u2_met(0, b)); // Compute c and d. { x = u2_rx(wir_r, a); while ( _0 == j2_mbc(Pt3, cut)(wir_r, _0, x, _1, b) ) { u2_atom y = j2_mbc(Pt1, inc)(wir_r, x); // Sanity check: crash if decoding more bits than available if ( u2_yes == j2_mbc(Pt1, gth)(wir_r, x, m)) { // fprintf(stderr, "[%%rub-hard %d %d %d]\r\n", a, x, m); return u2_bl_bail(wir_r, c3__exit); } u2_rz(wir_r, x); x = y; } if ( u2_yes == u2_sing(x, a) ) { u2_rz(wir_r, x); return u2_bc(wir_r, _1, _0); } c = j2_mbc(Pt1, sub)(wir_r, x, a); d = j2_mbc(Pt1, inc)(wir_r, x); u2_rz(wir_r, x); } // Compute e, p, q. { x = j2_mbc(Pt1, dec)(wir_r, c); y = j2_mbc(Pt3, bex)(wir_r, x); z = j2_mbc(Pt3, cut)(wir_r, _0, d, x, b); e = j2_mbc(Pt1, add)(wir_r, y, z); u2_rz(wir_r, y); u2_rz(wir_r, z); w = j2_mbc(Pt1, add)(wir_r, c, c); y = j2_mbc(Pt1, add)(wir_r, w, e); z = j2_mbc(Pt1, add)(wir_r, d, x); p = j2_mbc(Pt1, add)(wir_r, w, e); q = j2_mbc(Pt3, cut)(wir_r, _0, z, e, b); u2_rz(wir_r, w); u2_rz(wir_r, x); u2_rz(wir_r, y); u2_rz(wir_r, z); return u2_bc(wir_r, p, q); } }
static u2_noun _walk_ok(u2_reck* rec_u, u2_noun nod) { u2_noun don = u2_cn_mung(u2k(rec_u->toy.arch), u2k(nod)); if ( u2_no == u2_sing(nod, don) ) { c3_assert(0); } u2z(don); return nod; }
/* _unix_ankh_sing(): full ankh compare. */ static u2_bean _unix_ankh_sing(u2_noun xun, u2_noun bur) // retain { if ( u2_yes == u2_sing(xun, bur) ) { return u2_yes; } else { if ( u2_no == _unix_ankh_sing_in(xun, bur) ) { // fprintf(stderr, "uas: no, no (%x, %x)\r\n", u2_mug(xun), u2_mug(bur)); return u2_no; } else { // fprintf(stderr, "uas: no, yes\r\n"); return u2_yes; } } }
/* functions */ u2_noun // transfer j2_mby(Pt6, fork)(u2_wire wir_r, u2_noun hoz, // retain u2_noun bur) // retain { if ( u2_yes == u2_sing(hoz, bur) ) { return u2_rx(wir_r, hoz); } else if ( c3__void == bur ) { return u2_rx(wir_r, hoz); } else if ( c3__void == hoz ) { return u2_rx(wir_r, bur); } else return u2_bt (wir_r, c3__fork, u2_rx(wir_r, hoz), u2_rx(wir_r, bur)); }
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; } } }
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; } } }
/* _lily_hike_belt_root(): convert (pac) to a list of root tools. */ static u2_list _lily_hike_belt_root(u2_ray wir_r, u2_list pac) { if ( (u2_nul == pac) ) { return u2_nul; } else { u2_axis axis = u2_h(u2_h(pac)); u2_tool tool = u2_t(u2_h(pac)); u2_list list_tool = _lily_hike_belt_root(wir_r, u2_t(pac)); if ( u2_yes == u2_sing(_1, axis) ) { return u2_bc(wir_r, u2_rx(wir_r, tool), list_tool); } else return list_tool; } }
/* _unix_dir_ankh(): resolve directory to new style ankh. */ static u2_noun _unix_dir_ankh(u2_udir* dir_u) { u2_udir* dis_u; u2_ufil* fil_u; u2_noun pam = u2_nul; for ( dis_u = dir_u->dis_u; dis_u; dis_u = dis_u->nex_u ) { u2_noun pre = _unix_dir_name(dis_u); u2_noun ank = _unix_dir_ankh(dis_u); // uL(fprintf(uH, "dir %s\n", u2_cr_string(pre))); if ( 0 != u2h(ank) ) { pam = u2_ckd_by_put(pam, pre, ank); } } if ( !dir_u->par_u->par_u ) { // toplevel for ( fil_u = dir_u->par_u->fil_u; fil_u; fil_u = fil_u->nex_u ) { // uL(fprintf(uH, "top %s\n", fil_u->pax_c)); u2_noun wib = _unix_file_tame(fil_u); if ( u2_none == wib ) continue; u2_noun dur = _unix_dir_name(dir_u); if ( u2_no == u2_sing(dur, u2h(wib)) ) { // wrong desk u2z(wib); u2z(dur); continue; } u2_noun baw = _unix_file_load(fil_u); u2_noun woz = u2nt(u2_nul, u2_do("sham", u2k(baw)), baw); u2z(dur); pam = _unix_dir_ankh_file(pam, u2k(u2t(wib)), baw, woz); u2z(wib); } } for ( fil_u = dir_u->fil_u; fil_u; fil_u = fil_u->nex_u ) { u2_noun wib = _unix_file_name(fil_u); u2_noun baw = _unix_file_load(fil_u); u2_noun woz = u2nt(u2_nul, u2_do("sham", u2k(baw)), baw); pam = _unix_dir_ankh_file(pam, wib, baw, woz); } return u2_do("cosh", u2nt(0, u2_nul, pam)); }
static u2_bean _unix_ankh_sing_map(u2_noun mun, u2_noun mur) // retain { u2_noun n_mun, l_mun, r_mun; u2_noun n_mur, l_mur, r_mur; if ( (u2_nul == mun) && (u2_nul == mur) ) { return u2_yes; } if ( (u2_nul == mun) || (u2_nul == mur) ) { return u2_no; } u2_cx_trel(mun, &n_mun, &l_mun, &r_mun); u2_cx_trel(mur, &n_mur, &l_mur, &r_mur); if ( (u2_no == (u2_sing(u2h(n_mun), u2h(n_mur)))) || (u2_no == _unix_ankh_sing_in(u2t(n_mun), u2t(n_mur))) || (u2_no == _unix_ankh_sing_map(l_mun, l_mur)) || (u2_no == _unix_ankh_sing_map(r_mun, r_mur)) ) { return u2_no; } else return u2_yes; }
/* just */ u2_noun // produce j2_mcx(Pt5, just, fun)(u2_wire wir_r, u2_noun daf, // retain u2_noun tub) // retain { u2_noun p_tub, q_tub; u2_bi_cell(wir_r, tub, &p_tub, &q_tub); if ( u2_no == u2_dust(q_tub) ) { return _fail(wir_r, tub); } else { u2_noun iq_tub = u2_h(q_tub); if ( u2_yes == u2_sing(daf, iq_tub) ) { return _next(wir_r, tub); } else return _fail(wir_r, tub); } }
static u2_noun // produce _snub(u2_wire wir_r, u2_noun van, // retain u2_noun sut, // retain u2_noun peh, // retain u2_noun men, // retain u2_noun gen, // retain u2_noun gus) // retain { #if 1 return u2_rx(wir_r, gen); #else if ( u2_no == u2_dust(men) ) { if ( u2_nul == gus ) { return u2_rx(wir_r, gen); } else { return u2_rx(wir_r, u2_t(gus)); } } else { u2_noun i_men = u2_h(men); u2_noun t_men = u2_t(men); u2_noun pi_men = u2_h(i_men); u2_noun nip = _snip(wir_r, van, pi_men, peh, gen); u2_noun nar = u2_bc(wir_r, u2_nul, nip); u2_noun ret; if ( u2_nul != gus ) { if ( u2_no == u2_sing(nip, u2_t(gus)) ) { return u2_bl_bail(wir_r, c3__exit); } } ret = _snub(wir_r, van, sut, peh, t_men, gen, nar); u2_rz(wir_r, nar); return ret; } #endif }
/* _sh_good(): verify payload integrity in core. */ static u2_flag _sh_good(u2_noun cor, u2_noun xip) { #if 1 return u2_yes; // Good! Ja! Everything good! #else while ( 1 ) { u2_noun bat = u2_h(u2_t(xip)); u2_noun pet = u2_t(u2_t(xip)); if ( u2_no == u2_sing(bat, u2_t(cor)) ) { { char *cos_c = u2_ho_cstring(xip); printf("sh: cos_c: %s\n", cos_c); } c3_assert(0); u2_ho_warn_here(); return u2_no; } else { if ( _0 == pet ) { return u2_yes; } else { u2_atom axe = u2_h(pet); u2_noun nub = u2_frag(axe, cor); if ( u2_none == nub ) { return u2_no; } else { cor = nub; xip = u2_t(pet); continue; } } } } #endif }
/* 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; } }
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; } }
/* _unix_desk_sync_into(): sync external changes to desk. */ static void _unix_desk_sync_into(u2_noun who, u2_noun hox, u2_noun syd, u2_udir* dir_u) { u2_noun xun, bur, doz, fav, pax; xun = _unix_dir_arch(dir_u); bur = _unix_desk_peek(u2k(who), hox, syd, u2k(u2A->wen)); if ( u2_no == u2_sing(xun, bur) ) { doz = u2_dc("cyst", xun, bur); pax = u2nq(c3__gold, c3__sync, u2k(u2A->sen), u2_nul); fav = u2nq(c3__into, who, syd, u2nc(u2_yes, doz)); u2_reck_plan(u2A, pax, fav); } else { u2z(xun); u2z(bur); } }
/* _unix_desk_sync_ergo(): sync desk changes to unix. */ static void _unix_desk_sync_ergo(u2_noun who, u2_noun hox, u2_noun syd, u2_noun lok, u2_uhot* hot_u) { u2_udir** dir_u = _unix_pdir(&(hot_u->dir_u), syd); u2_noun xun; #if 0 uL(fprintf(uH, "ergo %s %s %s\n", u2_cr_string(hox), u2_cr_string(syd), u2_cr_string(lok))); #endif if ( !*dir_u ) { *dir_u = malloc(sizeof(u2_udir)); xun = u2nc(u2_no, u2_nul); _unix_dir_forge(*dir_u, &(hot_u->dir_u), u2k(syd)); } else { xun = _unix_dir_arch(*dir_u); } { u2_noun bur = _unix_desk_peek(who, hox, syd, lok); if ( u2_no == u2_sing(xun, bur) ) { u2_noun doz = u2_dc("cyst", bur, xun); _unix_desk_sync_soba(*dir_u, doz); } else { u2z(xun); u2z(bur); } } }
/* _ds_mate(): u2_yes iff `xip` binds to `cor`. */ static u2_bean _ds_mate(u2_noun xip, // retain u2_noun cor) // retain { u2_noun dac, bat, pet; u2_as_trel(xip, &dac, &bat, &pet); // Very important for performance that we mate top-down. // Reason: duplicates are much more common in shallower // batteries, and duplicate comparison is always slow. // if ( u2_nul != pet ) { u2_noun axe = u2_h(pet); u2_noun led = u2_t(pet); u2_noun ruc = u2_frag(axe, cor); if ( (u2_none == ruc) || (u2_no == _ds_mate(led, ruc)) ) { return u2_no; } } return u2_sing(bat, u2_h(cor)); }
/* mask */ u2_noun // produce j2_mcx(Pt5, mask, fun)(u2_wire wir_r, u2_noun bud, // retain u2_noun tub) // retain { u2_noun p_tub, q_tub; u2_bi_cell(wir_r, tub, &p_tub, &q_tub); if ( u2_no == u2_dust(q_tub) ) { return _fail(wir_r, tub); } else { u2_noun iq_tub = u2_h(q_tub); while ( u2_yes == u2_dust(bud) ) { if ( u2_yes == u2_sing(u2_h(bud), iq_tub) ) { return _next(wir_r, tub); } bud = u2_t(bud); } return _fail(wir_r, tub); } }
/* _nock_hint(): hint with code, data, subject, formula. nock/mink. */ static u2_noun // produce _nock_hint(u2_noun zep, // transfer u2_noun hod, // transfer u2_noun bus, // transfer u2_noun nex, // transfer u2_bean* pon) { u2_noun pro; switch ( zep ) { default: u2z(zep); u2z(hod); return pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); case c3__lose: case c3__yelp: case c3__bean: case c3__mean: case c3__spot: { u2_noun tax = u2_wire_tax(u2_Wire); u2_noun tac = u2nc(zep, hod); #if 0 if ( c3__spot == zep ) { printf("spot %d/%d : %d/%d\n", u2h(u2h(u2t(hod))), u2t(u2h(u2t(hod))), u2h(u2t(u2t(hod))), u2t(u2t(u2t(hod)))); } #endif u2_wire_tax(u2_Wire) = u2nc(tac, tax); { pro = pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); } tax = u2k(tax); u2z(u2_wire_tax(u2_Wire)); u2_wire_tax(u2_Wire) = tax; return pro; } case c3__slog: { u2_tx_sys_bit(u2_Wire, u2_yes); u2_tx_slog(u2_Wire, hod); u2_tx_sys_bit(u2_Wire, u2_no); u2z(hod); return pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); } case c3__mine: { pro = pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); if ( !pon || (u2_no != *pon) ) { u2_tx_sys_bit(u2_Wire, u2_yes); pro = u2_ds_mine(u2_Wire, hod, pro); u2_tx_sys_bit(u2_Wire, u2_no); } u2z(hod); return pro; } case c3__germ: { pro = pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); if ( u2_yes == u2_sing(pro, hod) ) { u2z(pro); return hod; } else { u2z(hod); return pro; } } case c3__fast: { pro = pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); if ( !pon || (u2_no != *pon) ) { u2_noun p_hod, q_hod, r_hod; /* XX: translate hod to old clue form. */ if ( u2_no == u2_as_trel(hod, &p_hod, &q_hod, &r_hod) ) { u2z(hod); return pro; } else { u2_noun xod; if ( u2_yes == u2_dust(q_hod) && (_1 == u2_h(q_hod)) && (_0 == u2_t(q_hod)) ) { q_hod = 0; } xod = u2_rt(u2_Wire, u2k(q_hod), u2k(p_hod), u2k(r_hod)); u2z(hod); hod = xod; } u2_tx_sys_bit(u2_Wire, u2_yes); pro = u2_ds_mine(u2_Wire, hod, pro); u2_tx_sys_bit(u2_Wire, u2_no); } u2z(hod); return pro; } case c3__memo: { u2z(hod); { pro = u2_rl_find_cell(u2_Wire, 0, bus, nex); if ( pro != u2_none ) { u2_tx_did_fin(u2_Wire, 1); u2z(bus); u2z(nex); return pro; } else { u2_noun sav; pro = pon ? _nock_mool(u2k(bus), u2k(nex), pon) : _nock_cool(u2k(bus), u2k(nex)); if ( !pon || (u2_no != *pon) ) { u2_tx_sys_bit(u2_Wire, u2_yes); sav = u2_rl_save_cell(u2_Wire, 0, bus, nex, pro); u2_tx_sys_bit(u2_Wire, u2_no); u2_tx_did_pod(u2_Wire, 1); u2_tx_did_fin(u2_Wire, 1); } else sav = pro; u2z(bus); u2z(nex); return sav; } } } case c3__ping: { u2_tx_sys_bit(u2_Wire, u2_yes); u2_tx_did_act(u2_Wire, hod); u2_tx_sys_bit(u2_Wire, u2_no); u2z(hod); return pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); } case c3__live: { u2_bean qox; u2_tx_sys_bit(u2_Wire, u2_yes); qox = u2_tx_task_in(u2_Wire, hod); u2_tx_sys_bit(u2_Wire, u2_no); u2z(hod); if ( u2_no == qox ) { return pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); } else { pro = pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); u2_tx_task_out(u2_Wire); return pro; } } case c3__sole: { u2z(hod); { pro = pon ? _nock_mool(bus, nex, pon) : _nock_cool(bus, nex); if ( u2_none == pro ) { return u2_none; } else if ( !pon || (u2_no != *pon) ) { u2_noun nuu; u2_tx_sys_bit(u2_Wire, u2_yes); nuu = u2_rl_uniq(u2_Wire, pro); u2_tx_sys_bit(u2_Wire, u2_no); u2_tx_did_fin(u2_Wire, 1); if ( nuu == pro ) { u2_tx_did_pod(u2_Wire, 1); } } return pro; } } } }
/* hill_boot(): create the hill engine. */ struct hill_state* // produce hill_boot(void) { struct hill_state* hil_h = malloc(sizeof(struct hill_state)); u2_ray wir_r; u2_boot(); wir_r = u2_wr_init(c3__rock, u2_ray_of(0, 0), u2_ray_of(1, 0)); Hill = hil_h; Hill->wir_r = wir_r; Hill->soa = u2_none; Hill->sob = u2_none; Hill->soc = u2_none; /* Mint the shoes. Impeccable memory practices. */ { u2_noun soa = u2_none; u2_noun sob = u2_none; u2_noun soc = u2_none; do { /* Boot shoe A. */ if ( u2_no == u2_rl_leap(wir_r, c3__rock) ) { c3_assert(0); } u2_bx_boot(wir_r); { u2_ray kit_r = u2_bl_open(wir_r); if ( u2_bl_set(wir_r) ) { u2_bl_done(wir_r, kit_r); u2_rl_fall(wir_r); fprintf(stderr, "{no boot, a}\n"); break; } else { soa = _hill_z_boot(wir_r, FileA); u2_bl_done(wir_r, kit_r); u2_bx_spot(wir_r, u2_nul); u2_bx_show(wir_r); } } fprintf(stderr, "{cold boot: %s, with %s jets: %x}\n", FileA, FileZ, u2_mug(soa)); Hill->soa = u2_rl_take(u2_wire_bas_r(wir_r), soa); u2_rl_fall(wir_r); /* Boot shoe B. */ if ( u2_no == u2_rl_leap(wir_r, c3__rock) ) { c3_assert(0); } u2_bx_boot(wir_r); { u2_ray kit_r = u2_bl_open(wir_r); if ( u2_bl_set(wir_r) ) { u2_bl_done(wir_r, kit_r); u2_rl_fall(wir_r); fprintf(stderr, "{no boot, b}\n"); break; } else { sob = _hill_a_boot(wir_r, soa, FileB); u2_bl_done(wir_r, kit_r); u2_bx_spot(wir_r, u2_nul); u2_bx_show(wir_r); } } fprintf(stderr, "{warm boot: %s, with %s: %x}\n", FileB, FileA, u2_mug(sob)); Hill->sob = u2_rl_take(u2_wire_bas_r(wir_r), sob); u2_rl_fall(wir_r); /* Boot shoe C. */ if ( u2_no == u2_rl_leap(wir_r, c3__rock) ) { c3_assert(0); } u2_bx_boot(wir_r); { u2_ray kit_r = u2_bl_open(wir_r); if ( u2_bl_set(wir_r) ) { u2_bl_done(wir_r, kit_r); u2_rl_fall(wir_r); fprintf(stderr, "{no boot, c}\n"); u2_bx_show(wir_r); break; } else { soc = _hill_b_eyre(wir_r, soa, sob, FileC); u2_bl_done(wir_r, kit_r); u2_bx_spot(wir_r, u2_nul); u2_bx_show(wir_r); } } fprintf(stderr, "{last boot: %s, with %s: %x}\n", FileC, FileB, u2_mug(soc)); Hill->soc = u2_rl_take(u2_wire_bas_r(wir_r), soc); u2_rl_fall(wir_r); /* Testing basics of soc. */ printf("testing eyre...\n"); { u2_noun foo = u2_rl_string(wir_r, "|!(a=@ (dec a))"); u2_noun bar = u2_nk_nock(wir_r, foo, Hill->soc); if ( u2_none == bar ) { printf("no bar\n"); } else { u2_noun moo = u2_nk_nock(wir_r, _0, bar); if ( u2_none == moo ) { printf("no moo\n"); } else { u2_noun zor = u2_nk_mung(wir_r, moo, 13); u2_err(wir_r, "zor", zor); } } } printf("tested.\n"); #if 1 { u2_noun soa = Hill->soa; u2_noun sob = Hill->sob; u2_noun dat = Hill->soc; u2_noun pak, bag; fprintf(stderr, "jam test: jam\n"); u2_bx_boot(wir_r); pak = _hill_b_jam(wir_r, soa, sob, dat); u2_bx_show(wir_r); fprintf(stderr, "jam test: %d bits\n", u2_met(0, pak)); u2_ux_write(wir_r, pak, "watt/264", "noun"); fprintf(stderr, "jam test: cue\n"); u2_bx_boot(wir_r); bag = _hill_b_cue(wir_r, soa, sob, pak); u2_bx_show(wir_r); if ( u2_yes == u2_sing(bag, dat) ) { fprintf(stderr, "jam test: match\n"); } else { fprintf(stderr, "jam test: NO MATCH\n"); } } #endif return Hill; } while (0); free(Hill); return 0; } }
/* functions */ u2_weak // transfer j2_mcc(Pt4, by, uni)(u2_wire wir_r, u2_noun a, // retain u2_noun b) // retain { if ( u2_nul == a ) { return u2_rx(wir_r, b); } else if ( u2_nul == b ) { return u2_rx(wir_r, a); } else { u2_noun l_a, n_a, r_a, lr_a, p_n_a, q_n_a; u2_noun l_b, n_b, r_b, lr_b, p_n_b, q_n_b; if ( (u2_no == u2_as_cell(a, &n_a, &lr_a)) ) { return u2_bl_bail(wir_r, c3__exit); } else if ( (u2_no == u2_as_cell(b, &n_b, &lr_b)) ) { return u2_bl_bail(wir_r, c3__exit); } else if ( (u2_no == u2_as_cell(n_a, &p_n_a, &q_n_a)) ) { return u2_bl_bail(wir_r, c3__exit); } else if ( (u2_no == u2_as_cell(n_b, &p_n_b, &q_n_b)) ) { return u2_bl_bail(wir_r, c3__exit); } else if ( u2_no == u2_as_cell(lr_a, &l_a, &r_a) ) { return u2_bl_bail(wir_r, c3__exit); } else if ( u2_no == u2_as_cell(lr_b, &l_b, &r_b) ) { return u2_bl_bail(wir_r, c3__exit); } else if ( u2_yes == j2_mbc(Pt3, vor)(wir_r, p_n_a, p_n_b) ) { if ( u2_yes == u2_sing(p_n_a, p_n_b) ) { return u2_rt(wir_r, u2_rx(wir_r, n_b), j2_mcc(Pt4, by, uni)( wir_r, u2_rx(wir_r, l_a), u2_rx(wir_r, l_b)), j2_mcc(Pt4, by, uni)( wir_r, u2_rx(wir_r, r_a), u2_rx(wir_r, r_b))); } else if ( u2_yes == j2_mbc(Pt3, hor)(wir_r, p_n_b, p_n_a) ) { return j2_mcc(Pt4, by, uni)( wir_r, u2_rt(wir_r, u2_rx(wir_r, n_a), j2_mcc(Pt4, by, uni)(wir_r, u2_rx(wir_r, l_a), u2_rt(wir_r, u2_rx(wir_r, n_b), u2_rx(wir_r, l_b), u2_rx(wir_r, u2_nul))), u2_rx(wir_r, r_a)), u2_rx(wir_r, r_b)); } else { return j2_mcc(Pt4, by, uni)( wir_r, u2_rt(wir_r, u2_rx(wir_r, n_a), u2_rx(wir_r, l_a), j2_mcc(Pt4, by, uni)(wir_r, u2_rx(wir_r, r_a), u2_rt(wir_r, u2_rx(wir_r, n_b), u2_rx(wir_r, u2_nul), u2_rx(wir_r, r_b)))), u2_rx(wir_r, l_b)); } } else if ( u2_yes == u2_sing(p_n_b, p_n_a) ) { return u2_rt( wir_r, u2_rx(wir_r, n_b), j2_mcc(Pt4, by, uni)(wir_r, u2_rx(wir_r, r_b), u2_rx(wir_r, r_a)), j2_mcc(Pt4, by, uni)(wir_r, u2_rx(wir_r, l_b), u2_rx(wir_r, l_a))); } else if ( u2_yes == j2_mbc(Pt3, hor)(wir_r, p_n_a, p_n_b) ) { return j2_mcc(Pt4, by, uni)( wir_r, u2_rx(wir_r, r_a), u2_rt(wir_r, u2_rx(wir_r, n_b), j2_mcc(Pt4, by, uni)(wir_r, u2_rt(wir_r, u2_rx(wir_r, n_a), u2_rx(wir_r, l_a), u2_rx(wir_r, u2_nul)), u2_rx(wir_r, l_b)), u2_rx(wir_r, r_b))); } else { return j2_mcc(Pt4, by, uni)( wir_r, u2_rx(wir_r, l_a), u2_rt(wir_r, u2_rx(wir_r, n_b), u2_rx(wir_r, l_b), j2_mcc(Pt4, by, uni)(wir_r, u2_rx(wir_r, r_b), u2_rt(wir_r, u2_rx(wir_r, n_a), u2_rx(wir_r, u2_nul), u2_rx(wir_r, r_a))))); } } }
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); } } }