Exemplo n.º 1
0
/* _mill_open(): type inference, top level.
*/
u4_type 
_mill_open(u4_milr m,
           u4_gene gen)
{
  u4_noun p_gen, q_gen, r_gen;

  if ( u4_b_fork(gen, &p_gen, &q_gen) ) {
    return _mill_open
      (m, u4_k_qual(m->lane, u4_atom_cage, p_gen, q_gen, u4_noun_0));
  }
  else {
    _open_pq (blin);  // |*
    _open_p  (boce);  // ?&
    _open_p  (bink);  // :^
    _open_p  (crot);  // ^@
    _open_pqr(drol);  // ||
    _open_pq (feng);  // ?>
    _open_p  (flec);  // :-
    _open_p  (flot);  // |-
    _open_pq (garc);  // :+
    _open_pq (stam);  // ?+
    _open_pq (trop);  // ->
    _open_pq (lect);
    _open_pq (prec);  // -<
    _open_p  (lome);  // |=
    _open_p  (malk);  // |+
    _open_p  (neft);  // &^
    _open_p  (palt);
    _open_p  (dast);  // ?|
    _open_pqr(pont);  // =>
    _open_pq (prex);  // ?<
    _open_pq (grun);  // :%
    _open_p  (crad);
    _open_pq (mang);  // :~
    _open_p  (cret);  // :*
    _open_p  (rald);  // ^*
    _open_pqr(clet);  // =<
    _open_p  (spil);  // &~
    _open_pq (flic);  // |:
    _open_pq (colb);  // ~<
    _open_p  (blem);  // ?!
    _open_p  (veck);  // &*
    _open_p  (wamp);  // &=
    _open_pq (gril);  // ?-
    _open_p  (frag);

    return gen;
  }
}
Exemplo n.º 2
0
Arquivo: ap.c Projeto: OCForks/urbit
  /** open
  **/
    static u3_noun
    _open_in(u3_noun ter,
             u3_noun gen)
    {
      u3_noun p_gen, q_gen, r_gen, s_gen;

      return u3_none;

      if ( c3y == u3ud(gen) ) {
        // printf("studly\n");
        // u3_err("stud m", gen);
        return u3m_bail(c3__exit);

        return u3nt(c3__cnts,
                    u3nc(u3k(gen), u3_nul),
                    u3_nul);
      }
      else switch ( u3h(gen) ) {
        default: return u3_none;

        case u3_nul: {
          return u3nt(c3__cnts,
                      u3nc(u3k(gen), u3_nul),
                      u3_nul);
        }

#     define _open_p(stem) \
          case c3__##stem: \
            return _open_in_##stem(ter, u3t(gen));  \

#     define _open_pq(stem) \
          case c3__##stem: \
            if ( c3n == u3r_cell(u3t(gen), &p_gen, &q_gen) ) { \
              return u3m_bail(c3__fail); \
            } else return _open_in_##stem(ter, p_gen, q_gen);

#     define _open_pqr(stem) \
          case c3__##stem: \
            if ( c3n == u3r_trel(u3t(gen), &p_gen, &q_gen, &r_gen) ) { \
              return u3m_bail(c3__fail); \
            } else return _open_in_##stem(ter, p_gen, q_gen, r_gen);

#     define _open_pqrs(stem) \
          case c3__##stem: \
            if ( c3n == u3r_qual\
                          (u3t(gen), &p_gen, &q_gen, &r_gen, &s_gen) )\
            { \
              return u3m_bail(c3__fail); \
            } else return _open_in_##stem(ter, p_gen, q_gen, r_gen, s_gen);

	_open_p   (bccb);
	_open_p   (bctr);
	_open_p   (bczp);

        _open_p   (brdt);
        _open_pq  (brcb);
        _open_p   (brhp);
        _open_pq  (brkt);
        _open_pq  (brls);
	_open_p   (brwt);

	_open_pq  (clcb);
	_open_p   (clcn);
	_open_pq  (clhp);
        _open_pqrs(clkt);
        _open_pqr (clls);
        _open_p   (cltr);
        _open_p   (clsg);
        _open_pq  (cncb);
        //  _open_pq  (cncl);
        _open_pq  (cndt);
        _open_pqrs(cnkt);
        _open_pq  (cnhp);
        _open_pqr (cnls);
        _open_pqr (cnsg);
        _open_p   (cnzy);
        _open_p   (cnzz);

	_open_p   (hxgl);
	_open_p   (hxgr);

	_open_pq  (ktdt);
//  _open_pq  (kthp);

	_open_pq  (sgts);
//	_open_pq  (sgbr);
	_open_pq  (sggl);
	_open_pq  (sgbc);
	_open_pq  (sgcb);
	_open_pqrs(sgcn);
	_open_pq  (sgfs);
	_open_pq  (sgls);
	_open_pqr (sgpm);
	_open_pqrs(sgwt);

        _open_pq  (smcl);
	//	_open_pq  (smsm);

	_open_pq  (tsbr);
	_open_pq  (tscl);
	_open_pqr (tsdt);
        _open_pq  (tsgl);
        _open_pq  (tshp);
        _open_pq  (tsls);
	_open_p   (tssg);

        _open_pqr (wtdt);
        _open_pq  (wtgl);
	_open_pqr (wtpt);
	_open_pqr (wtsg);
        _open_p   (wtzp);
        _open_p   (wtbr);
	_open_pq  (wthp);
        _open_pq  (wtgr);
        _open_pqr (wtls);
        _open_pqr (wtkt);
        _open_p   (wtpm);

	_open_pq  (zpcb);
	_open_p   (zpgr);
      }
    }