Exemple #1
0
void trans(Node *p) 
{	
  if (!p || tl_errs) return;
  
  if (tl_verbose || tl_terse) {	
    fprintf(tl_out, "\t/* Normlzd: ");
    dump(p);
    fprintf(tl_out, " */\n");
  }
  if (tl_terse)
    return;
 
  // Buddy might have been initialized by a third-party library.
  if (!bdd_isrunning()) {
    bdd_init(100000, 10000);
    // Disable the default GC handler.
    bdd_gbc_hook(0);
  }

  mk_alternating(p);
    if (!tl_hoaf || tl_hoaf > 1) {
      mk_generalized();
      if ((!tl_spot_out || tl_spot_out > 2) && (!tl_hoaf || tl_hoaf > 2))
        mk_buchi();
    }
  
  releasenode(1, p);
  
  bdd_done();
}
Exemple #2
0
CAMLprim value wrapper_bdd_setvarnum(value num) {
    CAMLparam1(num);
    if (bdd_isrunning()) {
        bdd_setvarnum(Int_val(num));
    } else {
        caml_failwith("Buddy not initialized");
    };
    CAMLreturn(Val_unit);
}
Exemple #3
0
CAMLprim value wrapper_bdd_isrunning() {
    CAMLparam0();
    CAMLlocal1(r);
    r = bdd_isrunning();
    CAMLreturn(Val_bool(r));
}
Exemple #4
0
/* ML type: unit -> bool */
EXTERNML value mlbdd_bdd_isrunning(value nill) /* ML */
{
  return bdd_isrunning() ? Val_true : Val_false;
}