static Disjunct * build_disjuncts_for_X_node(X_node * x, int cost_cutoff)
{
	Clause *c ;
	Disjunct * dis;
	c = build_clause(x->exp, cost_cutoff);
	dis = build_disjunct(c, x->string, cost_cutoff);
	free_clause_list(c);
	return dis;
}
Disjunct * build_disjuncts_for_exp(Exp* exp, const char *word, double cost_cutoff)
{
    Clause *c ;
    Disjunct * dis;
    /* print_expression(exp);  printf("\n"); */
    c = build_clause(exp);
    /* print_clause_list(c); */
    dis = build_disjunct(c, word, cost_cutoff);
    /* print_disjunct_list(dis); */
    free_clause_list(c);
    return dis;
}
/**
 * Build a list of disjuncts.
 *
 * This is mostly used only for counting the number of disjuncts
 * (but is otherwise "almost" obsolete ??)
 */
Disjunct * build_disjuncts_for_dict_node(Dict_node *dn)
{
	Clause *c ;
	Disjunct * dis;
	/*	 print_expression(dn->exp);   */
	/*	 printf("\n");				*/
	c = build_clause(dn->exp, NOCUTOFF);
	/* print_clause_list(c); */
	dis = build_disjunct(c, dn->string, NOCUTOFF);
	/* print_disjunct_list(dis); */
	free_clause_list(c);
	return dis;
}