/* internal functions */ u3_noun _b_dif_join(u3_noun d, u3_noun e) { if ( u3_nul == d ) { return u3k(e); } else if (u3_nul == e) { return u3k(d); } else { u3_noun n_d, l_d, r_d; u3_noun n_e, l_e, r_e; u3_noun p_n_d, q_n_d; u3_noun p_n_e, q_n_e; if ( c3n == u3r_trel(d, &n_d, &l_d, &r_d) || c3n == u3r_trel(e, &n_e, &l_e, &r_e) || c3n == u3r_cell(n_d, &p_n_d, &q_n_d) || c3n == u3r_cell(n_e, &p_n_e, &q_n_e) ) { return u3m_bail(c3__exit); } else { if ( c3y == u3qc_vor(p_n_d, p_n_e) ) { return u3nt(u3k(n_d), u3k(l_d), _b_dif_join(u3k(r_d), u3k(e))); } else { return u3nt(u3k(n_e), _b_dif_join(u3k(d), u3k(l_e)), u3k(r_e)); } } } }
static u3_noun _in_uni(u3_noun a, u3_noun b) { u3_noun n_a, l_a, r_a, n_b, l_b, r_b, neb, sub, naw, pro; if ( u3_nul == a ) { return u3k(b); } else if ( u3_nul == b ) { return u3k(a); } else if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) || (c3n == u3r_trel(b, &n_b, &l_b, &r_b)) ) { return u3m_bail(c3__exit); } else if ( c3n == u3qc_mor(n_a, n_b) ) { if ( c3y == u3r_sing(n_a, n_b) ) { return u3nt(u3k(n_b), _in_uni(l_a, l_b), _in_uni(r_a, r_b)); } else if ( c3y == u3qc_gor(n_a, n_b) ) { naw = u3nt(u3k(n_a), u3k(l_a), u3_nul); sub = _in_uni(naw, l_b); neb = u3nt(u3k(n_b), sub, u3k(r_b)); pro = _in_uni(r_a, neb); u3z(naw); u3z(neb); return pro; } else { naw = u3nt(u3k(n_a), u3_nul, u3k(r_a)); sub = _in_uni(naw, r_b); neb = u3nt(u3k(n_b), u3k(l_b), sub); pro = _in_uni(l_a, neb); u3z(naw); u3z(neb); return pro; } } else if ( c3y == u3r_sing(n_b, n_a) ) { return u3nt(u3k(n_b), _in_uni(l_a, l_b), _in_uni(r_a, r_b)); } else if ( c3y == u3qc_gor(n_b, n_a) ) { neb = u3nt(u3k(n_b), u3k(l_b), u3_nul); sub = _in_uni(l_a, neb); naw = u3nt(u3k(n_a), sub, u3k(r_a)); pro = _in_uni(naw, r_b); u3z(neb); u3z(naw); return pro; } else { neb = u3nt(u3k(n_b), u3_nul, u3k(r_b)); sub = _in_uni(r_a, neb); naw = u3nt(u3k(n_a), u3k(l_a), sub); pro = _in_uni(naw, l_b); u3z(neb); u3z(naw); return pro; } }
/* functions */ static u3_noun _rebalance(u3_noun a) { u3_noun l_a, n_a, r_a; if ( c3n == u3r_trel(a, &n_a, &l_a, &r_a) ) { return u3m_bail(c3__exit); } else { if ( u3_nul == l_a) { return u3k(r_a); } else if ( u3_nul == r_a) { return u3k(l_a); } else { u3_noun n_l_a, l_l_a, r_l_a; u3_noun n_r_a, l_r_a, r_r_a; if ( (c3n == u3r_trel(l_a, &n_l_a, &l_l_a, &r_l_a) ) || (c3n == u3r_trel(r_a, &n_r_a, &l_r_a, &r_r_a) ) ) { return u3m_bail(c3__exit); } else { if ( c3y == u3qc_mor(n_l_a, n_r_a) ) { u3_noun new_right = u3nt(u3k(n_a), u3k(r_l_a), u3k(r_a)); u3_noun ret = u3nt(u3k(n_l_a), u3k(l_l_a), _rebalance(new_right)); u3z(new_right); return ret; } else { u3_noun new_left = u3nt(u3k(n_a), u3k(l_a), u3k(l_r_a)); u3_noun ret = u3nt(u3k(n_r_a), _rebalance(new_left), u3k(r_r_a)); u3z(new_left); return ret; } } } } }
/* functions */ u3_noun u3qdb_has( u3_noun a, u3_noun b) { if ( u3_nul == a ) { return c3n; } else { u3_noun l_a, n_a, r_a; u3_noun pn_a, qn_a; if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) || (c3n == u3r_cell(n_a, &pn_a, &qn_a)) ) { return u3m_bail(c3__exit); } else { if ( (c3y == u3r_sing(b, pn_a)) ) { return c3y; } else { if ( c3y == u3qc_gor(b, pn_a) ) { return u3qdb_has(l_a, b); } else return u3qdb_has(r_a, b); } } } }
u3_noun u3qdb_dif(u3_noun a, u3_noun b) { if ( u3_nul == b ) { return u3k(a); } else { u3_noun n_b, l_b, r_b; u3_noun c, l_c, r_c; if ( c3n == u3r_trel(b, &n_b, &l_b, &r_b) ) { return u3m_bail(c3__exit); } else { c = u3qdb_bif(a, n_b); if ( c3n == u3r_cell(c, &l_c, &r_c) ) { return u3m_bail(c3__exit); } else { u3_noun d; u3_noun e; d = u3qdb_dif(l_c, l_b); e = u3qdb_dif(r_c, r_b); u3z(c); return _b_dif_join(d, e); } } } }
u3_noun u3qdi_del(u3_noun a, u3_noun b) { if ( u3_nul == a ) { return u3_nul; } else { u3_noun l_a, n_a, r_a; if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ) { return u3m_bail(c3__exit); } else if ( c3n == u3r_sing(n_a, b) ) { if ( c3y == u3qc_gor(b, n_a) ) { return u3nt(u3k(n_a), u3qdi_del(l_a, b), u3k(r_a)); } else { return u3nt(u3k(n_a), u3k(l_a), u3qdi_del(r_a, b)); } } else { return _rebalance(a); } } }
/* internal functions */ u3_noun _b_bif_putroot(u3_noun a, u3_noun b) { if ( u3_nul == a) { return u3nt(u3k(b), u3_nul, u3_nul); } else { u3_noun n_a, l_a, r_a; u3_noun p_n_a, q_n_a; u3_noun p_b, q_b; if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) || (c3n == u3r_cell(b, &p_b, &q_b)) || (c3n == u3r_cell(n_a, &p_n_a, &q_n_a)) ) { return u3m_bail(c3__exit); } else if ( c3y == u3r_sing(p_b, p_n_a) ) { return u3nt(u3k(b), u3k(l_a), u3k(r_a)); } else { u3_noun c, n_c, l_c, r_c; u3_noun d; if ( c3y == u3qc_gor(p_b, p_n_a) ) { c = _b_bif_putroot(l_a, b); u3r_trel(c, &n_c, &l_c, &r_c); d = u3nt(u3k(n_c), u3k(l_c), u3nt(u3k(n_a), u3k(r_c), u3k(r_a)) ); u3z(c); return d; } else { c = _b_bif_putroot(r_a, b); u3r_trel(c, &n_c, &l_c, &r_c); d = u3nt(u3k(n_c), u3nt(u3k(n_a), u3k(l_a), u3k(l_c)), u3k(r_c) ); u3z(c); return d; } } } }
u3_noun u3qdb_bif(u3_noun a, u3_noun b) { u3_noun c, n_c, l_c, r_c; u3_noun d; c = _b_bif_putroot(a, b); u3r_trel(c, &n_c, &l_c, &r_c); d = u3nc(u3k(l_c), u3k(r_c)); u3z(c); return d; }
static u3_noun _mint_bake( u3_noun van, u3_noun sut, u3_noun dab) { if ( (u3_nul == dab) ) { return 0; } else { u3_noun n_dab, l_dab, r_dab; u3r_trel(dab, &n_dab, &l_dab, &r_dab); if ( c3n == u3du(n_dab) ) { return u3m_bail(c3__fail); } else { u3_noun qn_dab = u3t(n_dab); u3_noun vad; switch ( u3h(qn_dab) ) { default: return u3m_bail(c3__exit); case c3__ash: { vad = _mint_brew(van, sut, c3y, u3t(qn_dab)); break; } case c3__elm: { vad = _mint_brew(van, sut, c3n, u3t(qn_dab)); break; } } if ( (u3_nul == l_dab) && (u3_nul == r_dab) ) { return vad; } else if ( (u3_nul == l_dab) ) { return u3nc (vad, _mint_bake(van, sut, r_dab)); } else if ( (u3_nul == r_dab) ) { return u3nc (vad, _mint_bake(van, sut, l_dab)); } else { return u3nt (vad, _mint_bake(van, sut, l_dab), _mint_bake(van, sut, r_dab)); } } } }
/* _http_new_response(): create http response structure. */ static u3_hrep* _http_new_response(c3_l sev_l, c3_l coq_l, c3_l seq_l, u3_noun rep) { u3_noun p_rep, q_rep, r_rep; if ( c3n == u3r_trel(rep, &p_rep, &q_rep, &r_rep) ) { uL(fprintf(uH, "strange response\n")); return 0; } else { u3_hrep* rep_u = c3_malloc(sizeof(u3_hrep)); rep_u->sev_l = sev_l; rep_u->coq_l = coq_l; rep_u->seq_l = seq_l; rep_u->sas_w = p_rep; rep_u->hed_u = _http_list_to_heds(u3k(q_rep)); rep_u->bod_u = (u3_nul == r_rep) ? 0 : _http_octs_to_bod(u3k(u3t(r_rep))); u3z(rep); return rep_u; } }
static u3_noun _peek_in(u3_noun van, u3_noun sut, u3_noun way, u3_atom axe, u3_noun gil) { u3_noun p_sut, q_sut; u3_noun pro; if ( (c3n == u3du(sut)) ) switch ( sut ) { default: return u3m_bail(c3__fail); case c3__noun: { return c3__noun; } case c3__void: { return c3__void; } } else switch ( u3h(sut) ) { default: return u3m_bail(c3__fail); case c3__atom: { return c3__void; } case c3__bull: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _peek_in(van, q_sut, way, axe, gil); } } case c3__cell: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { u3_atom tip = u3qc_cap(axe); u3_atom tap = u3qc_mas(axe); if ( 2 == tip ) { pro = _cqfu_peek(van, p_sut, way, tap); } else { pro = _cqfu_peek(van, q_sut, way, tap); } u3z(tap); u3z(tip); return pro; } } case c3__core: { u3_noun pq_sut, qq_sut, rq_sut; u3_noun prq_sut, qrq_sut; if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) || (c3n == u3r_trel(q_sut, &pq_sut, &qq_sut, &rq_sut)) || (c3n == u3r_cell(rq_sut, &prq_sut, &qrq_sut)) ) { return u3m_bail(c3__fail); } else { u3_atom tip = u3qc_cap(axe); u3_atom tap = u3qc_mas(axe); if ( 3 == tip ) { if ( c3n == u3qfu_park(van, sut, way, tap) ) { // u3_noun dun = u3qfu_dunq(van, "type", sut); u3_noun waz = u3qfu_shep (van, "axis", 'd', u3k(axe)); // u3t_push(u3nc(c3__mean, dun)); u3t_push(u3nc(c3__mean, waz)); return u3m_error("peek-park"); } else pro = _cqfu_peek(van, p_sut, way, tap); } else { pro = c3__noun; } u3z(tap); u3z(tip); return pro; } } case c3__cube: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _peek_in(van, q_sut, way, axe, gil); } } case c3__face: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _peek_in(van, q_sut, way, axe, gil); } } case c3__fork: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { u3_noun hed = _peek_in(van, p_sut, way, axe, gil); u3_noun tal = _peek_in(van, q_sut, way, axe, gil); pro = u3qf_fork(hed, tal); u3z(hed); u3z(tal); return pro; } } case c3__hold: { p_sut = u3t(sut); if ( (c3y == u3qdi_has(gil, sut)) ) { return c3__void; } else { u3_noun zoc = u3qdi_put(gil, sut); u3_noun fop = u3qfu_repo(van, sut); u3_noun pro = _peek_in(van, fop, way, axe, zoc); u3z(fop); u3z(zoc); return pro; } } } }
/* functions */ u3_noun u3qdb_put(u3_noun a, u3_noun b, u3_noun c) { if ( u3_nul == a ) { return u3nt( u3nc(u3k(b), u3k(c)), u3_nul, u3_nul); } else { u3_noun l_a, n_a, r_a, pn_a, qn_a; u3_noun d, l_d, n_d, r_d; if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) || (c3n == u3r_cell(n_a, &pn_a, &qn_a)) ) { return u3m_bail(c3__exit); } else if ( c3y == u3r_sing(pn_a, b) ) { if ( c3y == u3r_sing(qn_a, c) ) { return u3k(a); } else { return u3nt (u3nc(u3k(b), u3k(c)), u3k(l_a), u3k(r_a)); } } else { if ( c3y == u3qc_gor(b, pn_a) ) { d = u3qdb_put(l_a, b, c); if ( c3y == u3qc_vor(pn_a, u3h(u3h(d))) ) { return u3nt(u3k(n_a), d, u3k(r_a)); } else { u3r_trel(d, &n_d, &l_d, &r_d); { u3_noun e = u3nt (u3k(n_d), u3k(l_d), u3nt(u3k(n_a), u3k(r_d), u3k(r_a))); u3z(d); return e; } } } else { d = u3qdb_put(r_a, b, c); if ( c3y == u3qc_vor(pn_a, u3h(u3h(d))) ) { return u3nt(u3k(n_a), u3k(l_a), d); } else { u3r_trel(d, &n_d, &l_d, &r_d); { u3_noun e = u3nt (u3k(n_d), u3nt(u3k(n_a), u3k(l_a), u3k(l_d)), u3k(r_d)); u3z(d); return e; } } } } } }
static u3_noun _nest_sint( u3_noun van, u3_noun sut, u3_noun tel, u3_noun ref, u3_noun gil) { u3_noun p_ref, q_ref; if ( (c3n == u3du(ref)) ) { switch ( ref ) { default: return u3m_bail(c3__fail); case c3__noun: return c3n; case c3__void: return c3y; } } else { switch ( u3h(ref) ) { default: { return u3m_bail(c3__fail); } case c3__atom: return c3n; case c3__bull: { if ( c3n == u3r_trel(ref, 0, &p_ref, &q_ref) ) { return u3m_bail(c3__fail); } else { return _nest_dext(van, sut, tel, q_ref, gil); } } case c3__cell: return c3n; case c3__core: { u3_noun gam = u3qfu_repo(van, ref); u3_noun hiv = _nest_dext(van, sut, tel, gam, gil); u3z(gam); return hiv; } case c3__cube: { if ( c3n == u3r_trel(ref, 0, &p_ref, &q_ref) ) { return u3m_bail(c3__fail); } else { return _nest_dext(van, sut, tel, q_ref, gil); } } case c3__face: { if ( c3n == u3r_trel(ref, 0, &p_ref, &q_ref) ) { return u3m_bail(c3__fail); } else { return _nest_dext(van, sut, tel, q_ref, gil); } } case c3__fork: { if ( (c3y == u3r_mean(ref, 6, &p_ref, 7, &q_ref, 0)) ) { return c3a(_nest_dext(van, sut, c3n, p_ref, gil), _nest_dext(van, sut, c3n, q_ref, gil)); } else return u3m_bail(c3__fail); } case c3__hold: { p_ref = u3t(ref); { u3_noun hud = u3nc(u3k(sut), u3k(ref)); if ( (c3y == u3qdi_has(gil, hud)) ) { u3z(hud); return c3y; } else { u3_noun zoc = u3qdi_put(gil, hud); u3_noun gam = u3qfu_repo(van, ref); { u3_noun hiv = _nest_dext(van, sut, tel, gam, zoc); u3z(hud); u3z(gam); u3z(zoc); return hiv; } } } } } } }
static u3_noun _nest_dext_in( u3_noun van, u3_noun sut, u3_noun tel, u3_noun ref, u3_noun gil) { u3_noun p_sut, q_sut, p_ref, q_ref; if ( (c3n == u3du(sut)) ) switch ( sut ) { default: return u3m_bail(c3__fail); case c3__noun: { return c3y; } case c3__void: { return _nest_sint(van, sut, tel, ref, gil); } } else switch ( u3h(sut) ) { default: return u3m_bail(c3__fail); case c3__atom: { if ( (c3y == u3du(ref)) && (c3__atom == u3h(ref)) ) { if ( c3n == u3qf_fitz(u3t(sut), u3t(ref)) ) { // u3_err("fitz: need", u3t(sut)); // u3_err("fitz: have", u3t(ref)); return c3n; } return c3y; } else return _nest_sint(van, sut, tel, ref, gil); } case c3__bull: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _nest_dext(van, q_sut, tel, ref, gil); } } case c3__cell: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { if ( c3y == u3r_pq(ref, c3__cell, &p_ref, &q_ref) ) { return c3a(_nest_dext(van, p_sut, tel, p_ref, gil), _nest_dext(van, q_sut, tel, q_ref, gil)); } else return _nest_sint(van, sut, tel, ref, gil); } } case c3__core: { if ( c3n == u3r_trel(sut, 0, &p_sut, &q_sut) ) { return u3m_bail(c3__fail); } else { if ( (c3y == u3r_pq(ref, c3__core, &p_ref, &q_ref)) ) { return _nest_cong(van, sut, tel, ref, gil); } else return _nest_sint(van, sut, tel, ref, gil); } } case c3__cube: { if ( c3n == u3r_trel(sut, 0, &p_sut, &q_sut) ) { return u3m_bail(c3__fail); } else { if ( c3y == u3r_pq(ref, c3__cube, &p_ref, &q_ref) ) { return u3r_sing(p_sut, p_ref); } else return _nest_sint(van, sut, tel, ref, gil); } } case c3__face: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _nest_dext(van, q_sut, tel, ref, gil); } } case c3__fork: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { if ( c3n == u3du(ref) ) switch ( ref ) { default: return _nest_sint(van, sut, tel, ref, gil); case c3__noun: break; } else switch ( u3h(ref) ) { default: return _nest_sint(van, sut, tel, ref, gil); case c3__atom: case c3__cell: case c3__cube: case c3__core: break; } return c3o(_nest_dext(van, p_sut, c3n, ref, gil), _nest_dext(van, q_sut, c3n, ref, gil)); } } case c3__hold: p_sut = u3t(sut); { u3_noun hud = u3nc(u3k(sut), u3k(ref)); if ( (c3y == u3qdi_has(gil, hud)) ) { u3z(hud); return c3y; } else { u3_noun zoc = u3qdi_put(gil, hud); u3_noun fop = u3qfu_rest(van, sut, p_sut); u3_noun hiv = _nest_dext(van, fop, tel, ref, zoc); u3z(hud); u3z(fop); u3z(zoc); return hiv; } } } }
static u3_noun _fish_in(u3_noun van, u3_noun sut, u3_atom axe, u3_noun vit) { u3_noun p_sut, q_sut; if ( c3y == u3ud(sut) ) switch ( sut ) { default: return u3m_bail(c3__fail); case c3__noun: { return u3nc(1, 0); } case c3__void: { return u3nc(1, 1); } } else switch ( u3h(sut) ) { default: return u3m_bail(c3__fail); case c3__atom: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { if ( c3n == u3du(q_sut) ) { u3_noun ton = u3nt(3, 0, u3k(axe)); u3_noun pro = u3qf_flip(ton); u3z(ton); return pro; } else { return u3nt(5, u3nc(1, u3k(u3t(q_sut))), u3nc(0, u3k(axe))); } } } case c3__cell: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { u3_noun hut = u3nt(3, 0, u3k(axe)); u3_noun lef = u3qc_peg(axe, 2); u3_noun rit = u3qc_peg(axe, 3); u3_noun hed = _fish_in(van, p_sut, lef, vit); u3_noun tal = _fish_in(van, q_sut, rit, vit); u3_noun hob = u3qf_flan(hed, tal); u3_noun vug = u3qf_flan(hut, hob); u3z(hob); u3z(tal); u3z(hed); u3z(rit); u3z(lef); u3z(hut); return vug; } } case c3__core: { return u3nc(0, 0); } case c3__face: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _fish_in(van, q_sut, axe, vit); } } case c3__fork: p_sut = u3t(sut); { u3_noun yed = u3qdi_tap(p_sut, u3_nul); u3_noun ret = _fish_fork(van, yed, axe, vit); u3z(yed); return ret; } case c3__hold: { p_sut = u3t(sut); { if ( (c3y == u3qdi_has(vit, sut)) ) { // u3_noun dun = u3qfu_dunq(van, "type", sut); u3_noun niz = u3qfu_shep (van, "axis", 'd', u3k(axe)); // u3t_push(u3nc(c3__mean, dun)); u3t_push(u3nc(c3__mean, niz)); return u3m_error("fish-loop"); } else { u3_noun zoc = u3qdi_put(vit, sut); u3_noun fop = u3qfu_repo(van, sut); u3_noun pro = _fish_in(van, fop, axe, zoc); u3z(fop); u3z(zoc); return pro; } } } } }
static u3_noun _fire_each(u3_noun van, u3_noun vet, u3_noun typ, u3_noun gat) { u3_noun p_typ, q_typ, pq_typ, qq_typ, rq_typ; u3_noun h_gat, t_gat; if ( (c3n == u3du(typ)) || (c3__core != u3h(typ)) ) { return u3m_error("fire-core"); } else if ( (c3n == u3r_cell(u3t(typ), &p_typ, &q_typ)) || (c3n == u3r_trel(q_typ, &pq_typ, &qq_typ, &rq_typ)) || (c3n == u3r_cell(gat, &h_gat, &t_gat)) ) { return u3m_bail(c3__fail); } else { u3_noun dox = u3nt (c3__core, u3k(qq_typ), u3k(q_typ)); if ( c3__ash == u3h(gat) ) { if ( (c3y == vet) && (c3n == u3qfu_nest(van, qq_typ, c3y, p_typ)) ) { #if 0 u3_noun dun = u3qfu_dunq(van, "need", qq_typ); u3_noun niz = u3qfu_dunq(van, "have", p_typ); u3t_push(u3nc(c3__mean, niz)); u3t_push(u3nc(c3__mean, dun)); #endif return u3m_error("fire-dry"); } else { return u3nc(dox, u3k(t_gat)); } } else { c3_assert(c3__elm == u3h(gat)); #if 0 u3_noun dun = u3qfu_dunq(van, "wild", typ); u3_noun niz = u3qfu_dunq(van, "tame", dox); u3t_push(u3nc(c3__mean, dun)); u3t_push(u3nc(c3__mean, niz)); #endif if ( (c3y == vet) && (c3n == _fire_mull(van, typ, dox, t_gat)) ) { return u3m_error("fire-wet"); } else { u3z(dox); #if 0 u3t_drop(); u3t_drop(); #endif return u3nc(u3k(typ), u3k(t_gat)); } } } }
static u3_noun _peek_in(u3_noun van, u3_noun sut, u3_noun way, u3_atom axe, u3_noun gil) { u3_noun p_sut, q_sut; u3_noun pro; if ( (c3n == u3du(sut)) ) switch ( sut ) { default: return u3m_bail(c3__fail); case c3__noun: { return c3__noun; } case c3__void: { return c3__void; } } else switch ( u3h(sut) ) { default: return u3m_bail(c3__fail); case c3__atom: { return c3__void; } case c3__cell: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { u3_atom tip = u3qc_cap(axe); u3_atom tap = u3qc_mas(axe); if ( 2 == tip ) { pro = _cqfu_peek(van, p_sut, way, tap); } else { pro = _cqfu_peek(van, q_sut, way, tap); } u3z(tap); u3z(tip); return pro; } } case c3__core: { u3_noun pq_sut, qq_sut, rq_sut; u3_noun prq_sut, qrq_sut; if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) || (c3n == u3r_trel(q_sut, &pq_sut, &qq_sut, &rq_sut)) || (c3n == u3r_cell(rq_sut, &prq_sut, &qrq_sut)) ) { return u3m_bail(c3__fail); } else { u3_atom now = u3qc_cap(axe); u3_atom lat = u3qc_mas(axe); if ( 3 == now ) { u3_noun pec = u3qfu_perk(van, sut, way, pq_sut); u3_noun sam = u3h(pec); u3_noun con = u3t(pec); if ( c3y == c3a(sam, con) ) { pro = _cqfu_peek(van, p_sut, way, lat); } else { u3_noun typ; { u3_noun hed, tal; if ( c3n == sam ) { hed = c3__noun; } else { hed = _cqfu_peek(van, p_sut, way, 2); } if ( c3n == con ) { tal = c3__noun; } else { tal = _cqfu_peek(van, p_sut, way, 3); } typ = u3qf_cell(hed, tal); u3z(hed); u3z(tal); } pro = _cqfu_peek(van, typ, way, lat); u3z(typ); } u3z(pec); } else { pro = c3__noun; } u3z(lat); u3z(now); return pro; } } case c3__face: { if ( (c3n == u3r_trel(sut, 0, &p_sut, &q_sut)) ) { return u3m_bail(c3__fail); } else { return _peek_in(van, q_sut, way, axe, gil); } } case c3__fork: p_sut = u3t(sut); { u3_noun yed = u3qdi_tap(p_sut, u3_nul); u3_noun ret = u3kf_fork(_peek_fork(van, yed, way, axe, gil)); u3z(yed); return ret; } case c3__hold: { if ( (c3y == u3qdi_has(gil, sut)) ) { return c3__void; } else { u3_noun zoc = u3qdi_put(gil, sut); u3_noun fop = u3qfu_repo(van, sut); u3_noun pro = _peek_in(van, fop, way, axe, zoc); u3z(fop); u3z(zoc); return pro; } } } }