show_table for tabled predicates with arity 0.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1871 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
9bb854ab62
commit
f92d494e8e
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
Copyright: R. Rocha and NCC - University of Porto, Portugal
|
Copyright: R. Rocha and NCC - University of Porto, Portugal
|
||||||
File: tab.tries.C
|
File: tab.tries.C
|
||||||
version: $Id: tab.tries.c,v 1.21 2007-04-26 14:11:08 ricroc Exp $
|
version: $Id: tab.tries.c,v 1.22 2007-04-26 19:02:46 ricroc Exp $
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
@ -1114,12 +1114,35 @@ int traverse_table(tab_ent_ptr tab_ent, Atom pred_atom, int show_table) {
|
||||||
TrStat_ans_max_depth = -1;
|
TrStat_ans_max_depth = -1;
|
||||||
TrStat_ans_min_depth = -1;
|
TrStat_ans_min_depth = -1;
|
||||||
if (sg_node) {
|
if (sg_node) {
|
||||||
char str[STR_ARRAY_SIZE];
|
if (TabEnt_arity(tab_ent)) {
|
||||||
int str_index = sprintf(str, " ?- %s(", AtomName(pred_atom));
|
char str[STR_ARRAY_SIZE];
|
||||||
int arity[ARITY_ARRAY_SIZE];
|
int str_index = sprintf(str, " ?- %s(", AtomName(pred_atom));
|
||||||
arity[0] = 1;
|
int arity[ARITY_ARRAY_SIZE];
|
||||||
arity[1] = TabEnt_arity(tab_ent);
|
arity[0] = 1;
|
||||||
return traverse_subgoal_trie(sg_node, str, str_index, arity, 1, TRAVERSE_NORMAL);
|
arity[1] = TabEnt_arity(tab_ent);
|
||||||
|
return traverse_subgoal_trie(sg_node, str, str_index, arity, 1, TRAVERSE_NORMAL);
|
||||||
|
} else {
|
||||||
|
sg_fr_ptr sg_fr = (sg_fr_ptr) sg_node;
|
||||||
|
TrStat_subgoals++;
|
||||||
|
TrStat_sg_linear_nodes = TrStat_sg_min_depth = TrStat_sg_max_depth = 0;
|
||||||
|
SHOW_TABLE(" ?- %s.\n", AtomName(pred_atom));
|
||||||
|
TrStat_ans_nodes++;
|
||||||
|
TrStat_ans_max_depth = TrStat_ans_min_depth = 0;
|
||||||
|
if (SgFr_first_answer(sg_fr) == NULL) {
|
||||||
|
if (SgFr_state(sg_fr) < complete) {
|
||||||
|
TrStat_sg_incomplete++;
|
||||||
|
SHOW_TABLE(" ---> INCOMPLETE\n");
|
||||||
|
} else {
|
||||||
|
TrStat_answers_no++;
|
||||||
|
SHOW_TABLE(" NO\n");
|
||||||
|
}
|
||||||
|
} else if (SgFr_first_answer(sg_fr) == SgFr_answer_trie(sg_fr)) {
|
||||||
|
TrStat_answers_yes++;
|
||||||
|
TrStat_answers++;
|
||||||
|
SHOW_TABLE(" TRUE\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
SHOW_TABLE(" empty\n");
|
SHOW_TABLE(" empty\n");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -1470,19 +1493,19 @@ int traverse_subgoal_trie(sg_node_ptr sg_node, char *str, int str_index, int *ar
|
||||||
} else if (depth > TrStat_sg_max_depth) {
|
} else if (depth > TrStat_sg_max_depth) {
|
||||||
TrStat_sg_max_depth = depth;
|
TrStat_sg_max_depth = depth;
|
||||||
}
|
}
|
||||||
if (SgFr_state(sg_fr) < complete) {
|
SHOW_TABLE("%s.\n", str);
|
||||||
TrStat_sg_incomplete++;
|
|
||||||
SHOW_TABLE("%s. ---> INCOMPLETE\n", str);
|
|
||||||
} else {
|
|
||||||
SHOW_TABLE("%s.\n", str);
|
|
||||||
}
|
|
||||||
TrStat_ans_nodes++;
|
TrStat_ans_nodes++;
|
||||||
if (SgFr_first_answer(sg_fr) == NULL) {
|
if (SgFr_first_answer(sg_fr) == NULL) {
|
||||||
if (TrStat_ans_max_depth < 0)
|
if (TrStat_ans_max_depth < 0)
|
||||||
TrStat_ans_max_depth = 0;
|
TrStat_ans_max_depth = 0;
|
||||||
TrStat_ans_min_depth = 0;
|
TrStat_ans_min_depth = 0;
|
||||||
TrStat_answers_no++;
|
if (SgFr_state(sg_fr) < complete) {
|
||||||
SHOW_TABLE(" NO ANSWERS\n");
|
TrStat_sg_incomplete++;
|
||||||
|
SHOW_TABLE(" ---> INCOMPLETE\n");
|
||||||
|
} else {
|
||||||
|
TrStat_answers_no++;
|
||||||
|
SHOW_TABLE(" NO\n");
|
||||||
|
}
|
||||||
} else if (SgFr_first_answer(sg_fr) == SgFr_answer_trie(sg_fr)) {
|
} else if (SgFr_first_answer(sg_fr) == SgFr_answer_trie(sg_fr)) {
|
||||||
if (TrStat_ans_max_depth < 0)
|
if (TrStat_ans_max_depth < 0)
|
||||||
TrStat_ans_max_depth = 0;
|
TrStat_ans_max_depth = 0;
|
||||||
|
@ -1496,6 +1519,10 @@ int traverse_subgoal_trie(sg_node_ptr sg_node, char *str, int str_index, int *ar
|
||||||
answer_arity[0] = 0;
|
answer_arity[0] = 0;
|
||||||
if (! traverse_answer_trie(TrNode_child(SgFr_answer_trie(sg_fr)), answer_str, 0, answer_arity, 0, 1, TRAVERSE_NORMAL))
|
if (! traverse_answer_trie(TrNode_child(SgFr_answer_trie(sg_fr)), answer_str, 0, answer_arity, 0, 1, TRAVERSE_NORMAL))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
if (SgFr_state(sg_fr) < complete) {
|
||||||
|
TrStat_sg_incomplete++;
|
||||||
|
SHOW_TABLE(" ---> INCOMPLETE\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue