static u2_noun // transfer _seek_silk_yew(u2_wire wir_r, u2_noun van, // retain u2_noun syx, // retain u2_noun qq_tor) // retain { if ( u2_nul == qq_tor ) { return u2_nul; } else { u2_noun iqq_tor = u2_h(qq_tor); u2_noun qiqq_tor = u2_t(iqq_tor); u2_noun yon = _seek_silk_yew(wir_r, van, syx, u2_t(qq_tor)); if ( c3__yew != u2_h(qiqq_tor) ) { return yon; } else { u2_noun nuy = j2_mby(Pt6, look)(wir_r, syx, u2_t(qiqq_tor)); if ( u2_nul == nuy ) { return u2_bl_error(wir_r, "silk"); } else { yon = u2_bc(wir_r, u2_rx(wir_r, u2_t(nuy)), yon); u2_rz(wir_r, nuy); return yon; } } } }
/* _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_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; } }
static u2_noun // produce _mint_foil(u2_wire wir_r, u2_noun pok) // submit { u2_noun p_pok = u2_h(pok); u2_noun q_pok = u2_t(pok); u2_noun ret; if ( u2_yes == u2_h(q_pok) ) { u2_noun pq_pok = u2_t(q_pok); ret = u2_bc(wir_r, u2_rx(wir_r, p_pok), u2_bc(wir_r, u2_nul, u2_bc(wir_r, u2_bc(wir_r, u2_rx(wir_r, pq_pok), u2_bt(wir_r, c3__elm, u2_nul, _1)), u2_nul))); } else { u2_noun pq_pok = u2_h(u2_t(q_pok)); u2_noun qq_pok = u2_t(u2_t(q_pok)); ret = u2_bc(wir_r, u2_rx(wir_r, p_pok), u2_bc(wir_r, u2_rx(wir_r, pq_pok), u2_rx(wir_r, qq_pok))); } u2_rz(wir_r, pok); 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; } } }
/* 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; } } } } }
/* _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; } } }
/* u2_cke_cue(): expand saved pill. */ static u2_noun // produce _cue_in(u2_wire wir_r, u2_atom a, // retain u2_atom b, // retain u2_ray t_r) // retain { u2_noun p, q; if ( _0 == j2_mbc(Pt3, cut)(wir_r, 0, b, 1, a) ) { u2_noun x = j2_mbc(Pt1, inc)(wir_r, b); u2_noun c = j2_mby(Pt5, rub)(wir_r, x, a); p = j2_mbc(Pt1, inc)(wir_r, u2_h(c)); q = u2_rx(wir_r, u2_t(c)); q = u2_cs_save(wir_r, t_r, 0, b, q); u2_rz(wir_r, c); u2_rz(wir_r, x); } else { u2_noun c = j2_mbc(Pt1, add)(wir_r, _2, b); u2_noun l = j2_mbc(Pt1, inc)(wir_r, b); if ( _0 == j2_mbc(Pt3, cut)(wir_r, 0, l, 1, a) ) { u2_noun u, v, w; u2_noun x, y; u = _cue_in(wir_r, a, c, t_r); x = j2_mbc(Pt1, add)(wir_r, u2_h(u), c); v = _cue_in(wir_r, a, x, t_r); w = u2_bc(wir_r, u2_rx(wir_r, u2_t(u)), u2_rx(wir_r, u2_t(v))); y = j2_mbc(Pt1, add)(wir_r, u2_h(u), u2_h(v)); p = j2_mbc(Pt1, add)(wir_r, _2, y); q = u2_cs_save(wir_r, t_r, 0, b, w); u2_rz(wir_r, u); u2_rz(wir_r, v); u2_rz(wir_r, x); u2_rz(wir_r, y); } else { u2_noun d = j2_mby(Pt5, rub)(wir_r, c, a); u2_weak x = u2_cs_find(wir_r, t_r, 0, u2_t(d)); p = j2_mbc(Pt1, add)(wir_r, _2, u2_h(d)); if ( u2_none == x ) { return u2_bl_bail(wir_r, c3__fail); } q = u2_rx(wir_r, x); u2_rz(wir_r, d); } u2_rz(wir_r, l); u2_rz(wir_r, c); } return u2_bc(wir_r, p, q); }
/* zuse_test3(): accurate use of a true kernel. */ void zuse_test3(struct zuse_state* fod_f, const char* src_c, const char* arg_c) { u2_wire wir_r = fod_f->wir_r; u2_noun src = u2_ux_read(wir_r, src_c, "watt"); if ( u2_none == src ) { printf("test3: %s: no file\n", src_c); u2_bl_bail(wir_r); } else { u2_noun gen = j2_mbc(watt_271, ream)(wir_r, src); // u2_err(wir_r, "gene", gen); if ( u2_none == gen ) { printf("test3: %s: no gene\n", src_c); return; } else { u2_noun lof = _zuse_ol_mint(wir_r, fod_f->pit, c3__noun, c3__noun, gen); if ( u2_none == lof ) { printf("test: failed\n"); } else { printf(":::: :::: :::: ::::\n"); u2_bx_spot(wir_r, u2_nul); #if 0 u2_err(wir_r, "type", u2_h(lof)); u2_err(wir_r, "tool", u2_t(lof)); #endif if ( arg_c ) { u2_noun typ = u2_h(lof); u2_noun tul = u2_t(lof); u2_noun pug = u2_bn_nock(wir_r, _0, tul); u2_noun src = u2_rl_string(wir_r, arg_c); u2_noun ger = j2_mbc(watt_271, ream)(wir_r, src); u2_noun hup = _zuse_ol_mint(wir_r, fod_f->pit, typ, c3__noun, ger); if ( (u2_none != hup) && (u2_none != pug) ) { u2_weak muf = u2_nk_nock(wir_r, pug, u2_t(hup)); _zuse_dump_type(wir_r, fod_f->pit, 0, u2_h(hup)); if ( muf != u2_none ) { u2_err(wir_r, 0, muf); } u2_bx_spot(wir_r, u2_nul); } } } } } }
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; } }
/* _hill_z_make_gen(): execute gene against shoe. */ static hi_shoz // produce _hill_z_make_gen(u2_wire wir_r, hi_shoz sho, // retain u2_noun gen) // retain { u2_noun gam = _hill_z_mint_gen(wir_r, u2_h(sho), c3__noun, gen); u2_noun pro = _hill_nock(wir_r, u2_t(sho), u2_t(gam)); u2_noun ret = u2_bc(wir_r, u2_rx(wir_r, u2_h(gam)), pro); u2_rz(wir_r, gam); return ret; }
/* _hill_a_make_gen(): execute gene against core. */ static hi_shoa // produce _hill_a_make_gen(u2_wire wir_r, hi_shoz soa, // retain hi_shoa cor, // retain u2_noun gen) // retain { u2_noun gam = _hill_a_mint_gen(wir_r, soa, u2_h(cor), c3__noun, gen); u2_noun pro = _hill_nock(wir_r, u2_t(cor), u2_t(gam)); u2_noun ret = u2_bc(wir_r, u2_rx(wir_r, u2_h(gam)), pro); u2_rz(wir_r, gam); return ret; }
/* functions */ static u2_noun // produce _flay_roll(u2_wire wir_r, u2_noun quz) // retain { if ( u2_no == u2_dust(quz) ) { return c3__void; } else { u2_noun voo = _flay_roll(wir_r, u2_t(quz)); u2_noun oon = j2_mby(Pt6, fork)(wir_r, u2_h(u2_h(quz)), voo); u2_rz(wir_r, voo); return oon; } }
/* _hill_b_fire(): execute and print expression over pit C (with shoe B). */ static void // produce _hill_b_fire(u2_wire wir_r, u2_noun soa, // retain u2_noun sob, // retain u2_noun soc, // retain const c3_c* exp_c, // retain const c3_c* out_c) // retain { u2_noun txt, gam, som; txt = u2_bn_string(wir_r, exp_c); gam = _hill_b_mint_txt(wir_r, soa, sob, u2_h(soc), c3__noun, txt); _hill_b_print_type(wir_r, soa, sob, 0, 0, u2_h(gam)); if ( out_c && !strcmp("p", out_c) ) { u2_rz(wir_r, txt); u2_rz(wir_r, gam); return; } u2_bx_boot(wir_r); som = _hill_nock(wir_r, u2_t(soc), u2_t(gam)); u2_bx_show(wir_r); if ( u2_none == som ) { fprintf(stderr, "{none}\n"); } else { if ( !out_c ) { _hill_print_noun(wir_r, 0, 0, som); } else if ( !strcmp("w", out_c) ) { _hill_print_wall(wir_r, 0, 0, som); } else if ( !strcmp("t", out_c) ) { _hill_print_tape(wir_r, 0, som); printf("\n"); } else if ( !strcmp("d", out_c) ) { _hill_print_delm(wir_r, 0, som); printf("\n"); } else if ( !strcmp("e", out_c) ) { _hill_print_term(wir_r, 0, som); printf("\n"); } else if ( !strcmp("y", out_c) ) { _hill_print_type(wir_r, 0, 0, som); } } u2_rz(wir_r, txt); u2_rz(wir_r, gam); u2_rz(wir_r, som); }
static u2_noun // transfer _seek_silk_fum(u2_noun wir_r, u2_noun hey, // retain u2_noun qq_tor) { if ( u2_nul == qq_tor ) { return u2_nul; } c3_assert(u2_nul != hey); return u2_bc (wir_r, u2_bc(wir_r, u2_rx(wir_r, u2_h(u2_h(qq_tor))), u2_rx(wir_r, u2_t(u2_h(hey)))), _seek_silk_fum(wir_r, u2_t(hey), u2_t(qq_tor))); }
static u2_noun // retain _seek_silk_yaw(u2_noun wir_r, u2_noun hey) // retain { u2_atom axe = 0; while ( u2_nul != hey ) { if ( axe == 0 ) { axe = u2_h(u2_h(hey)); } else if ( axe != u2_h(u2_h(hey)) ) { return u2_bl_error(wir_r, "silk"); } hey = u2_t(hey); } }
/* u2_ds_mine(): ** ** Register and/or save core. */ u2_noun // transfer u2_ds_mine(u2_wire wir_r, u2_noun clu, // retain u2_noun cor) // transfer { u2_noun bas_r = u2_wire_bas_r(wir_r); if ( u2_no == u2_dust(cor) ) { return cor; } else { u2_noun pay = u2_t(cor); u2_noun bat = u2_h(cor); u2_noun pug = u2_cs_find(bas_r, u2_wire_des_r(wir_r), 0, bat); u2_noun xip, bat_xip; u2_noun gop; if ( u2_none == pug ) { pug = u2_nul; } if ( u2_none == (xip = _ds_scan(pug, cor)) ) { gop = u2_rc(bas_r, (xip = _ds_chip(wir_r, clu, cor)), u2_rx(bas_r, pug)); if ( u2_none == gop ) { return cor; } else { bat_xip = u2_h(u2_t(xip)); // {c3_c* xip_c=u2_ho_cstring(xip); printf("%s\n", xip_c); free(xip_c);} gop = u2_cs_save(bas_r, u2_wire_des_r(wir_r), 0, bat_xip, gop); u2_rz(bas_r, gop); } } else bat_xip = u2_h(u2_t(xip)); if ( bat_xip != bat ) { u2_noun cyr = u2_rc(wir_r, u2_rx(wir_r, pay), bat_xip); if ( u2_none == cyr ) { return cor; } else { u2_rz(wir_r, cor); return cyr; } } else return cor; } }
/* 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; } } }
/* 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); } } }
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))); } }
/* 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); } }
/* _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); } }
/* 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)); } }
/* logic */ static u2_noun // produce _seek_flat(u2_wire wir_r, u2_noun wob) // retain { if ( u2_nul == wob ) { return u2_nul; } else { u2_noun i_wob = u2_h(wob); u2_noun t_wob = u2_t(wob); return u2_bc (wir_r, u2_bc(wir_r, u2_rx(wir_r, u2_h(i_wob)), u2_bt(wir_r, c3__ash, u2_nul, _1)), _seek_flat(wir_r, t_wob)); } }
static u2_noun // transfer _seek_silk(u2_wire wir_r, u2_noun van, // retain u2_noun syx, // retain u2_noun tor) // retain { u2_noun p_tor, q_tor, pq_tor, qq_tor; u2_noun hey, ret; u2_as_cell(tor, &p_tor, &q_tor); if ( u2_yes == u2_h(q_tor) ) { return u2_nul; } u2_as_cell(u2_t(q_tor), &pq_tor, &qq_tor); hey = _seek_silk_yew(wir_r, van, syx, qq_tor); if ( u2_nul == hey ) { return u2_nul; } if ( u2_ckb_lent(u2_rx(wir_r, hey)) != u2_ckb_lent(u2_rx(wir_r, qq_tor)) ) { return u2_bl_error(wir_r, "silk"); } ret = u2_bq (wir_r, u2_nul, u2_no, j2_mbc(Pt3, peg)(wir_r, pq_tor, _seek_silk_yaw(wir_r, hey)), _seek_silk_fum(wir_r, hey, qq_tor)); u2_rz(wir_r, hey); return ret; }
/* u2_bn_hook(): ** ** Execute hook from core. */ u2_noun u2_bn_hook(u2_wire wir_r, u2_noun cor, const c3_c* tam_c) { u2_weak vib = u2_ds_look(wir_r, cor, tam_c); if ( u2_none == vib ) { fprintf(stderr, "no hook: %s\n", tam_c); c3_assert(0); return u2_bl_bail(wir_r, c3__fail); } else { if ( u2_nul == u2_h(vib) ) { u2_noun rag = u2_frag(u2_t(vib), cor); // printf("%s %d\n", tam_c, u2_t(vib)); u2_rz(wir_r, vib); return u2_rx(wir_r, rag); } else { u2_noun ret = u2_bn_nock(wir_r, cor, vib); u2_rz(wir_r, vib); 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; } }
u2_noun // transfer j2_mcy(Pt6, ut, tack)(u2_wire wir_r, u2_noun van, // retain u2_noun sut, // retain u2_noun peh, // retain u2_noun mur) // retain { u2_ho_jet *jet_j = &j2_mcj(Pt6, ut, tack)[0]; if ( jet_j->sat_s == u2_jet_live ) { return j2_mcx(Pt6, ut, tack)(wir_r, van, sut, peh, mur); } else { u2_noun cor, fol, pro; cor = j2_mci(Pt6, ut, tack)(wir_r, van, sut, peh, mur); fol = u2_h(cor); pro = u2_ho_use(wir_r, jet_j, cor, fol); if ( u2_none == pro ) return u2_bl_bail(wir_r, c3__fail); u2_rz(wir_r, cor); u2_rz(wir_r, fol); return pro; } }
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))); } } }