Exemple #1
0
  static u3_noun
  _og_list(u3_noun a,
           u3_noun b,
           u3_noun c)
  {
    u3_noun l = u3_nul;

    if ( !_(u3a_is_cat(b)) ) {
      return u3m_bail(c3__fail);
    }
    while ( 0 != b ) {
      u3_noun x = u3qc_mix(a, c);
      u3_noun y = u3qc_mix(b, x);
      u3_noun d = u3qe_shas(c3_s4('o','g','-','b'), y);
      u3_noun m;

      u3z(x); u3z(y);

      if ( b < 256 ) {
        u3_noun e = u3qc_end(0, b, d);

        u3z(d);
        m = u3nc(b, e);
        b = 0;
      } else {
        m = u3nc(256, d);
        c = d;

        b -= 256;
      }
      l = u3nc(m, l);
    }
    return u3kb_flop(l);
  }
Exemple #2
0
 //  extract lcs
 //
 static u3_noun
 _lexs(u3_loss* loc_u)
 {
   if ( 0 == loc_u->kct_w ) {
     return u3_nul;
   } else return u3kb_flop(_lext(loc_u, loc_u->kad[loc_u->kct_w - 1]));
 }
Exemple #3
0
/* functions
*/
  u3_noun
  u3qb_scag(
                    u3_atom a,
                    u3_noun b)
  {
    if ( !_(u3a_is_cat(a)) ) {
      return u3m_bail(c3__fail);
    }
    else {
      u3_noun acc;
      c3_w i_w = a;

      if ( !i_w )
	return u3_nul;

      while ( i_w ) {
        if ( c3n == u3du(b) ) {
          return u3_nul;
        }
	acc = u3i_cell( u3h(b), acc );
	b = u3t(b);
	i_w--;
      }

      return u3kb_flop(acc);
    }
  }
Exemple #4
0
  //  compute lcs
  //
  static void
  _loss(u3_loss* loc_u)
  {
    while ( u3_nul != loc_u->hel ) {
      u3_noun i_hel = u3h(loc_u->hel);
      u3_noun guy   = u3kdb_get(u3k(loc_u->sev), u3k(i_hel));

      if ( u3_none != guy ) {
        u3_noun gay = u3kb_flop(guy);

        _merg(loc_u, 0, gay);
        u3z(gay);
      }

      loc_u->hel = u3t(loc_u->hel);
    }
  }
Exemple #5
0
  static u3_noun 
  _play_loc_term(u3_noun van,
                 u3_noun loc)
  {
    u3_noun fop = u3kb_flop(u3k(u3h(loc)));
    u3_noun nam = ((0 == fop) ? c3__none : u3k(u3h(fop)));
    u3_noun lys = u3nt(u3k(u3h(u3t(loc))), u3k(u3t(u3t(loc))), u3_nul);
    u3_noun rup = u3nc(nam, lys);
    c3_c*   pre_c = u3m_pretty(rup);
    u3_noun pro   = u3i_string(pre_c);

    u3z(fop);
    u3z(rup);
    free(pre_c);

    return pro;
  }
Exemple #6
0
/* _sist_suck(): past failure.
*/
static void
_sist_suck(u3_noun ovo, u3_noun gon)
{
  uL(fprintf(uH, "sing: ovum failed!\n"));
  {
    c3_c* hed_c = u3r_string(u3h(u3t(ovo)));

    uL(fprintf(uH, "fail %s\n", hed_c));
    free(hed_c);
  }

  u3_lo_punt(2, u3kb_flop(u3k(u3t(gon))));
  // u3_loom_exit();
#if 1
  u3_lo_exit();

  exit(1);
#else
  u3z(ovo); u3z(gon);
#endif
}