home *** CD-ROM | disk | FTP | other *** search
- p:-[file2pred].
-
- go:-go('progs/file2pred.pl').
-
- go(F):-
- see(F),
- get_a_predicate(FN,Cs),
- nl,write('% '),write(FN),nl,
- member(C,Cs),
- pp_clause(C),
- fail
- ; seen.
-
- get_a_predicate(F/N,Cs):-
- read_predicate(F/N,Cs),
- ( F=end_of_file->!,fail
- ; true
- ).
- get_a_predicate(FN,Cs):-
- get_a_predicate(FN,Cs).
-
- read_predicate(F/N,[(H:-B)|Cs]):-
- rclause(H,B),
- functor(H,F,N),
- get_all_clauses(F,N,Cs).
-
- get_all_clauses(F,N,Cs):-findall(C,get_a_clause(F,N,C),Cs).
-
- get_a_clause(F,N,(H:-B)):-
- radd(H,B),
- ( H=end_of_file->!,fail
- ; functor(H,F,N)->true
- ; !,bb_def(left,over,(H:-B)),fail
- ).
- get_a_clause(F,N,C):-
- get_a_clause(F,N,C).
-
- rclause(H,B):-val(left,over,(H:-B)),rm(left,over),!.
- rclause(H,B):-radd(H,B).
-
- radd(H,B):-read_clause(C),add_true(C,(H:-B)).
-