up_qor_see.c (1252B)
1 #include "all.h" 2 3 u3_noun 4 u3qdu_qor_see(u3_noun a) 5 { 6 if (u3_nul == a) { 7 return u3_nul; 8 } 9 10 u3_noun n_a, t_a, m_a; 11 u3x_trel(a, &n_a, &t_a, &m_a); 12 13 if (u3_nul == t_a) { 14 return u3nc(c3__sing, u3k(n_a)); 15 } 16 17 u3_atom hot = u3h(t_a); 18 19 if ( c3n == u3ud(hot) ) { 20 return u3m_bail(c3__exit); 21 } 22 else switch ( hot ) { 23 default: 24 return u3m_bail(c3__exit); 25 26 case c3__llos: { 27 u3_noun p_t_a = u3t(u3t(t_a)); 28 29 u3_noun n_p_t_a, l_p_t_a, m_p_t_a, r_p_t_a; 30 u3x_qual(p_t_a, &n_p_t_a, &l_p_t_a, &m_p_t_a, &r_p_t_a); 31 32 return u3nt( 33 c3__play, 34 u3nt(u3k(n_p_t_a), u3k(l_p_t_a), u3k(m_p_t_a)), 35 u3nt(u3k(n_a), u3k(r_p_t_a), u3k(m_a))); 36 } 37 38 case c3__rlos: { 39 u3_noun p_t_a = u3t(u3t(t_a)); 40 41 u3_noun n_p_t_a, l_p_t_a, m_p_t_a, r_p_t_a; 42 u3x_qual(p_t_a, &n_p_t_a, &l_p_t_a, &m_p_t_a, &r_p_t_a); 43 44 return u3nt( 45 c3__play, 46 u3nt(u3k(n_a), u3k(l_p_t_a), u3k(m_p_t_a)), 47 u3nt(u3k(n_p_t_a), u3k(r_p_t_a), u3k(m_a))); 48 } 49 } 50 } 51 52 u3_noun 53 u3wdu_qor_see(u3_noun cor) 54 { 55 u3_noun a; 56 57 if (c3n == u3r_mean(cor, u3x_sam, &a, 0)) 58 { 59 return u3m_bail(c3__exit); 60 } else { 61 return u3qdu_qor_see(a); 62 } 63 } 64