/* functions */ u2_weak // transfer j2_mcc(Pt4, by, gas)(u2_wire wir_r, u2_noun a, // retain u2_noun b) // retain { if ( u2_nul == b ) { return u2_rx(wir_r, a); } else { if ( u2_no == u2_dust(b) ) { return u2_bl_bail(wir_r, c3__exit); } else { u2_noun i_b = u2_h(b); u2_noun t_b = u2_t(b); if ( u2_no == u2_dust(i_b) ) { return u2_bl_bail(wir_r, c3__exit); } else { u2_noun pi_b = u2_h(i_b); u2_noun qi_b = u2_t(i_b); u2_noun c; if ( u2_none == (c = j2_mcc(Pt4, by, put)(wir_r, a, pi_b, qi_b)) ) { return u2_bl_bail(wir_r, c3__exit); } else { u2_noun d = j2_mcc(Pt4, by, gas)(wir_r, c, t_b); u2_rl_lose(wir_r, c); return d; } } } } }
/* glue */ u2_noun // produce j2_mcx(Pt5, glue, fun)(u2_wire wir_r, u2_noun bus, // retain u2_noun vex, // retain u2_noun sab) // retain { u2_noun p_vex, q_vex; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_no == u2_dust(q_vex) ) { return u2_rx(wir_r, vex); } else { u2_noun uq_vex = u2_t(q_vex); u2_noun puq_vex, quq_vex; u2_noun yit, yur; u2_noun p_yit, q_yit; u2_noun ret; u2_bi_cell(wir_r, uq_vex, &puq_vex, &quq_vex); yit = u2_bl_good(wir_r, u2_nk_mong(wir_r, bus, u2_rx(wir_r, quq_vex))); u2_bi_cell(wir_r, yit, &p_yit, &q_yit); yur = _last(wir_r, p_vex, p_yit); if ( u2_no == u2_dust(q_yit) ) { ret = u2_bc(wir_r, yur, u2_nul); } else { u2_noun uq_yit = u2_t(q_yit); u2_noun puq_yit, quq_yit; u2_noun wam, p_wam, q_wam, goy; u2_bi_cell(wir_r, uq_yit, &puq_yit, &quq_yit); wam = u2_bl_good(wir_r, u2_nk_mong(wir_r, sab, u2_rx(wir_r, quq_yit))); u2_bi_cell(wir_r, wam, &p_wam, &q_wam); goy = _last(wir_r, yur, p_wam); u2_rz(wir_r, yur); if ( u2_no == u2_dust(q_wam) ) { ret = u2_bc(wir_r, goy, u2_nul); } else { u2_noun uq_wam = u2_t(q_wam); u2_noun puq_wam, quq_wam; u2_bi_cell(wir_r, uq_wam, &puq_wam, &quq_wam); ret = u2_bq(wir_r, goy, u2_nul, u2_bc(wir_r, u2_rx(wir_r, puq_vex), u2_rx(wir_r, puq_wam)), u2_rx(wir_r, quq_wam)); } u2_rz(wir_r, wam); } u2_rz(wir_r, yit); return ret; } }
/* bend */ u2_noun // produce j2_mcx(Pt5, bend, fun)(u2_wire wir_r, u2_noun raq, // retain u2_noun vex, // retain u2_noun sab) // retain { u2_noun p_vex, q_vex; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_no == u2_dust(q_vex) ) { return u2_rx(wir_r, vex); } else { u2_noun uq_vex = u2_t(q_vex); u2_noun puq_vex, quq_vex; u2_noun yit, yur; u2_noun p_yit, q_yit; u2_noun ret; u2_bi_cell(wir_r, uq_vex, &puq_vex, &quq_vex); yit = u2_bl_good(wir_r, u2_nk_mong(wir_r, sab, u2_rx(wir_r, quq_vex))); u2_bi_cell(wir_r, yit, &p_yit, &q_yit); yur = _last(wir_r, p_vex, p_yit); if ( u2_no == u2_dust(q_yit) ) { ret = u2_bc(wir_r, yur, u2_rx(wir_r, q_vex)); } else { u2_noun uq_yit = u2_t(q_yit); u2_noun puq_yit, quq_yit; u2_noun vux; u2_bi_cell(wir_r, uq_yit, &puq_yit, &quq_yit); vux = u2_bl_good (wir_r, u2_nk_mong (wir_r, raq, u2_bc(wir_r, u2_rx(wir_r, puq_vex), u2_rx(wir_r, puq_yit)))); if ( u2_nul == vux ) { ret = u2_bc(wir_r, yur, u2_rx(wir_r, q_vex)); } else { ret = u2_bq(wir_r, yur, u2_nul, u2k(u2t(vux)), u2_rx(wir_r, quq_yit)); u2z(vux); } } u2_rz(wir_r, yit); return ret; } }
u2_noun // produce j2_mcx(Pt5, stew, fun)(u2_wire wir_r, u2_noun hel, // 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_fly_is_cat(iq_tub) ) { return u2_bl_bail(wir_r, c3__fail); } else while ( 1 ) { if ( u2_no == u2_dust(hel) ) { return _fail(wir_r, tub); } else { u2_noun n_hel, l_hel, r_hel; u2_noun pn_hel, qn_hel; c3_t bit_t; u2_bi_trel(wir_r, hel, &n_hel, &l_hel, &r_hel); u2_bi_cell(wir_r, n_hel, &pn_hel, &qn_hel); if ( (u2_no == u2_dust(pn_hel)) ) { bit_t = (iq_tub == pn_hel); } else { u2_noun hpn_hel = u2_h(pn_hel); u2_noun tpn_hel = u2_t(pn_hel); if ( !u2_fly_is_cat(hpn_hel) || !u2_fly_is_cat(tpn_hel) ) { return _fail(wir_r, tub); } else bit_t = (iq_tub >= hpn_hel) && (iq_tub <= tpn_hel); } if ( bit_t ) { return u2_bl_good (wir_r, u2_nk_mong(wir_r, qn_hel, u2_rx(wir_r, tub))); } else { if ( u2_yes == _stew_wor(wir_r, iq_tub, pn_hel) ) { hel = l_hel; } else hel = r_hel; } } } } }
/* u2_bx_bean_print(): print bean stack to FILE *. */ void u2_bx_bean_print(u2_ray wir_r, FILE * fil_F, u2_noun zof) // retain { while ( u2_yes == u2_dust(zof) ) { u2_noun i_zof = u2_h(zof); u2_noun t_zof = u2_t(zof); if ( u2_yes == u2_stud(i_zof) ) { _print_term(i_zof, fil_F); fprintf(fil_F, "\n"); } else { u2_noun hi_zof = u2_h(i_zof); u2_noun ti_zof = u2_t(i_zof); u2_weak gol; gol = u2_nk_kick(wir_r, ti_zof); if ( u2_none == gol ) { _print_term(hi_zof, fil_F); fprintf(fil_F, ":!\n"); } else { u2_noun gal = gol; if ( u2_nul == hi_zof ) { while ( u2_yes == u2_dust(gal) ) { _print_tape(u2_h(gal), fil_F); fprintf(fil_F, "\n"); gal = u2_t(gal); } } else { c3_w feq_w = u2_met(3, hi_zof); _print_term(hi_zof, fil_F); printf(": "); while ( u2_yes == u2_dust(gal) ) { if ( gal != gol ) { _print_space(feq_w + 2, fil_F); } _print_tape(u2_h(gal), fil_F); fprintf(fil_F, "\n"); gal = u2_t(gal); } } u2_rl_lose(wir_r, gol); } } zof = t_zof; } }
static u2_noun _molt_apply(u2_wire wir_r, u2_noun som, c3_w len_w, struct _molt_pair* pms_m) { if ( len_w == 0 ) { return u2_rl_gain(wir_r, som); } else if ( (len_w == 1) && (1 == pms_m[0].axe_w) ) { return u2_rl_gain(wir_r, pms_m[0].som); } else { c3_w cut_w = _molt_cut(len_w, pms_m); if ( u2_no == u2_dust(som) ) { return u2_bc (wir_r, _molt_apply(wir_r, u2_nul, cut_w, pms_m), _molt_apply(wir_r, u2_nul, (len_w - cut_w), (pms_m + cut_w))); } else { return u2_bc (wir_r, _molt_apply(wir_r, u2_h(som), cut_w, pms_m), _molt_apply(wir_r, u2_t(som), (len_w - cut_w), (pms_m + cut_w))); } } }
/* pose */ u2_noun // produce j2_mbx(Pt5, pose)(u2_wire wir_r, u2_noun vex, // retain u2_noun sab) // retain { u2_noun p_vex, q_vex; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_yes == u2_dust(q_vex) ) { return u2_rx(wir_r, vex); } else { u2_noun roq = u2_bl_good(wir_r, u2_nk_kick(wir_r, sab)); u2_noun p_roq, q_roq; u2_noun ret; u2_bi_cell(wir_r, roq, &p_roq, &q_roq); ret = u2_bc (wir_r, _last(wir_r, p_vex, p_roq), u2_rx(wir_r, q_roq)); u2_rz(wir_r, roq); return ret; } }
/* shim */ u2_noun // produce j2_mcx(Pt5, shim, fun)(u2_wire wir_r, u2_noun zep, // 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 p_zep, q_zep; u2_noun iq_tub = u2_h(q_tub); u2_bi_cell(wir_r, zep, &p_zep, &q_zep); if ( u2_fly_is_cat(p_zep) && u2_fly_is_cat(q_zep) && u2_fly_is_cat(iq_tub) ) { if ( (iq_tub >= p_zep) && (iq_tub <= q_zep) ) { return _next(wir_r, tub); } else return _fail(wir_r, tub); } else { return u2_bl_bail(wir_r, c3__fail); } } }
/* stag */ u2_noun // produce j2_mcx(Pt5, stag, fun)(u2_wire wir_r, u2_noun gob, // retain u2_noun sef, // retain u2_noun tub) // retain { u2_noun vex = u2_bl_good(wir_r, u2_nk_mong(wir_r, sef, u2_rx(wir_r, tub))); u2_noun p_vex, q_vex; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_no == u2_dust(q_vex) ) { return vex; } else { u2_noun uq_vex = u2_t(q_vex); u2_noun puq_vex, quq_vex; u2_noun wag; u2_noun ret; u2_bi_cell(wir_r, uq_vex, &puq_vex, &quq_vex); wag = u2_bc(wir_r, u2_rx(wir_r, gob), u2_rx(wir_r, puq_vex)); ret = u2_bq(wir_r, u2_rx(wir_r, p_vex), u2_nul, wag, u2_rx(wir_r, quq_vex)); u2_rz(wir_r, vex); return ret; } }
/* cold */ u2_noun // produce j2_mcx(Pt5, cold, fun)(u2_wire wir_r, u2_noun cus, // retain u2_noun sef, // retain u2_noun tub) // retain { u2_noun vex = u2_bl_good(wir_r, u2_nk_mong(wir_r, sef, u2_rx(wir_r, tub))); u2_noun p_vex, q_vex; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_no == u2_dust(q_vex) ) { return vex; } else { u2_noun uq_vex = u2_t(q_vex); u2_noun quq_vex; u2_noun ret; u2_bi_cell(wir_r, uq_vex, 0, &quq_vex); ret = u2_bq(wir_r, u2_rx(wir_r, p_vex), u2_nul, u2_rx(wir_r, cus), u2_rx(wir_r, quq_vex)); u2_rz(wir_r, vex); return ret; } }
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; } } }
/* _unix_dump(): dump noun to file. */ static void _unix_dump(FILE* fil, u2_noun som) { if ( u2_no == u2_dust(som) ) { mpz_t amp; if ( u2_yes == _unix_term(som) ) { c3_w met_w = u2_met(3, som); c3_y *buf_y = alloca(met_w + 1); u2_bytes(0, met_w, buf_y, som); buf_y[met_w] = 0; fprintf(fil, "%%%s", buf_y); } else { u2_mp(amp, som); gmp_fprintf(fil, "%Zd", amp); mpz_clear(amp); } } else { fputc('[', fil); _unix_dump(fil, u2_h(som)); fprintf(fil, " "); _unix_dump_in(fil, u2_t(som)); fputc(']', fil); } }
/* functions */ u2_weak // transfer j2_mbc(Pt2, scag)(u2_wire wir_r, u2_atom a, // retain u2_noun b) // retain { if ( !u2_fly_is_cat(a) ) { return u2_bl_bail(wir_r, c3__fail); } else { u2_noun acc; c3_w i_w = a; if ( !i_w ) return u2_nul; while ( i_w ) { if ( u2_no == u2_dust(b) ) { return u2_nul; } acc = u2_cn_cell( u2_h(b), acc ); b = u2_t(b); i_w--; } return u2_ckb_flop(acc); } }
/* 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; } }
/* u2_bn_cook(): ** ** Reverse hook as molt. */ u2_noun // transfer u2_bn_cook(u2_wire wir_r, u2_noun cor, // retain const c3_c* tam_c, u2_noun som) // transfer { u2_weak vib = u2_ds_look(wir_r, cor, tam_c); u2_noun axe; if ( (u2_none == vib) || (u2_no == u2_dust(vib)) || (u2_nul != u2_h(vib)) || (u2_no == u2_stud(axe = u2_t(vib)) ) ) { u2_rz(wir_r, vib); return u2_bl_bail(wir_r, c3__fail); } else { u2_noun gon = u2_bn_molt(wir_r, cor, axe, som, 0); u2_rz(wir_r, vib); u2_rz(wir_r, som); return gon; } }
/* pfix */ u2_noun // produce j2_mbx(Pt5, pfix)(u2_wire wir_r, u2_noun vex, // retain u2_noun sab) // retain { u2_noun p_vex, q_vex; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_no == u2_dust(q_vex) ) { return u2_rx(wir_r, vex); } else { u2_noun uq_vex = u2_t(q_vex); u2_noun puq_vex, quq_vex; u2_noun yit, p_yit, q_yit; u2_noun ret; u2_bi_cell(wir_r, uq_vex, &puq_vex, &quq_vex); yit = u2_bl_good(wir_r, u2_nk_mong(wir_r, sab, u2_rx(wir_r, quq_vex))); u2_bi_cell(wir_r, yit, &p_yit, &q_yit); ret = u2_bc (wir_r, _last(wir_r, p_vex, p_yit), u2_rx(wir_r, q_yit)); u2_rz(wir_r, yit); return ret; } }
static u2_noun // produce _next(u2_wire wir_r, u2_noun tub) // retain { u2_noun p_tub, q_tub; u2_noun zac; 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); u2_noun tq_tub = u2_t(q_tub); zac = _slip(wir_r, iq_tub, p_tub); return u2_bc (wir_r, zac, u2_bq(wir_r, u2_nul, u2_rx(wir_r, iq_tub), u2_rx(wir_r, zac), u2_rx(wir_r, tq_tub))); } }
/* stew */ static u2_flag _stew_wor(u2_wire wir_r, u2_noun ort, u2_noun wan) { if ( !u2_fly_is_cat(ort) ) { return u2_bl_bail(wir_r, c3__fail); } else { if ( u2_no == u2_dust(wan) ) { if ( !u2_fly_is_cat(wan) ) { return u2_bl_bail(wir_r, c3__fail); } else return (ort < wan) ? u2_yes : u2_no; } else { u2_noun h_wan = u2_h(wan); if ( !u2_fly_is_cat(h_wan) ) { return u2_bl_bail(wir_r, c3__fail); } else return (ort < h_wan) ? u2_yes : u2_no; } } }
/* 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; } } }
/* stir */ u2_noun // produce j2_mcx(Pt5, stir, fun)(u2_wire wir_r, u2_noun rud, // retain u2_noun raq, // retain u2_noun fel, // retain u2_noun tub) // retain { u2_noun vex = u2_bl_good(wir_r, u2_nk_mong(wir_r, fel, u2_rx(wir_r, tub))); u2_noun p_vex, q_vex; u2_noun ret; u2_bi_cell(wir_r, vex, &p_vex, &q_vex); if ( u2_no == u2_dust(q_vex) ) { ret = u2_bq(wir_r, u2_rx(wir_r, p_vex), u2_nul, u2_rx(wir_r, rud), u2_rx(wir_r, tub)); } else { u2_noun uq_vex = u2_t(q_vex); u2_noun puq_vex, quq_vex; u2_noun wag, p_wag, q_wag, uq_wag, puq_wag, quq_wag; u2_bi_cell(wir_r, uq_vex, &puq_vex, &quq_vex); wag = j2_mcx(Pt5, stir, fun)(wir_r, rud, raq, fel, quq_vex); u2_bi_cell(wir_r, wag, &p_wag, &q_wag); if ( u2_no == u2_dust(q_wag) ) { return u2_bl_bail(wir_r, c3__fail); } uq_wag = u2_t(q_wag); u2_bi_cell(wir_r, uq_wag, &puq_wag, &quq_wag); ret = u2_bq (wir_r, _last(wir_r, p_vex, p_wag), u2_nul, u2_bl_good(wir_r, u2_nk_mong (wir_r, raq, u2_bc(wir_r, u2_rx(wir_r, puq_vex), u2_rx(wir_r, puq_wag)))), u2_rx(wir_r, quq_wag)); u2_rz(wir_r, wag); } u2_rz(wir_r, vex); return ret; }
/* u2_bi_t(): ** ** Return the tail of (a). */ u2_noun u2_bi_t(u2_ray wir_r, u2_noun a) { if ( u2_no == u2_dust(a) ) return u2_bl_bail(wir_r, c3__exit); return u2_t(a); }
/* u2_bl_drop(): drop from meaning stack. */ void u2_bl_drop(u2_wire wir_r) { u2_noun tax = u2_wire_tax(wir_r); c3_assert(u2_yes == u2_dust(tax)); u2_wire_tax(wir_r) = u2_rx(wir_r, u2_t(tax)); u2_rz(wir_r, tax); }
/* _print_wall(): print debug wall. */ static void _print_wall(u2_noun wal, FILE* fil_F) { while ( u2_yes == u2_dust(wal) ) { _print_tape(u2_h(wal), fil_F); putc('\n', fil_F); wal = u2_t(wal); } }
/* u2_bx_loaf(): print debug loaf. */ void u2_bx_loaf(u2_ray wir_r, u2_noun luf) // retain { if ( u2_yes == u2_dust(luf) ) { _print_term(u2_h(luf), stdout); printf(":\n"); _print_wall(u2_t(luf), stdout); } }
/* _print_tape(): print a byte tape. */ static void _print_tape(u2_noun som, FILE* fil_F) { u2_noun h_som; while ( (u2_yes == u2_dust(som)) && ((h_som = u2_h(som)) < 128) ) { putc(h_som, fil_F); som = u2_t(som); } }
/* 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); } } }
/* 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); } }
/* _hill_print_tent(): print wrapper for trace entry. */ static void _hill_print_tent(u2_wire wir_r, FILE* fil_f, // retain u2_noun tax) // retain { if ( u2_yes == u2_dust(tax) ) switch ( u2_h(tax) ) { case c3__spot: _hill_print_spot(wir_r, fil_f, u2_t(tax)); return; case c3__bean: _hill_print_bean(wir_r, fil_f, u2_t(tax)); return; case c3__mean: _hill_print_mean(wir_r, fil_f, u2_t(tax)); return; } fprintf(fil_f, " {tent!}\n"); }
static u2_noun // produce _mint_bake(u2_wire wir_r, u2_noun van, // retain u2_noun sut, // retain u2_noun dab) // retain { if ( (u2_nul == dab) ) { return _0; } else { u2_noun n_dab, l_dab, r_dab; u2_as_trel(dab, &n_dab, &l_dab, &r_dab); if ( u2_no == u2_dust(n_dab) ) { return u2_bl_bail(wir_r, c3__fail); } else { u2_noun qn_dab = u2_t(n_dab); u2_noun vad; switch ( u2_h(qn_dab) ) { default: return u2_bl_bail(wir_r, c3__exit); case c3__ash: { vad = _mint_brew(wir_r, van, sut, u2_yes, u2_t(qn_dab)); break; } case c3__elm: { vad = _mint_brew(wir_r, van, sut, u2_no, u2_t(qn_dab)); break; } } if ( (u2_nul == l_dab) && (u2_nul == r_dab) ) { return vad; } else if ( (u2_nul == l_dab) ) { return u2_bc (wir_r, vad, _mint_bake(wir_r, van, sut, r_dab)); } else if ( (u2_nul == r_dab) ) { return u2_bc (wir_r, vad, _mint_bake(wir_r, van, sut, l_dab)); } else { return u2_bt (wir_r, vad, _mint_bake(wir_r, van, sut, l_dab), _mint_bake(wir_r, van, sut, r_dab)); } } } }
u2_noun // transfer j2_mb(Pt6, flay)(u2_wire wir_r, u2_noun cor) // retain { u2_noun pok; if ( (u2_no == u2_mean(cor, u2_cv_sam, &pok, 0)) || (u2_no == u2_dust(pok)) ) { return u2_bl_bail(wir_r, c3__fail); } else { return j2_mby(Pt6, flay)(wir_r, pok); } }