1:- module(tap_expand, []). 2
3:- use_module(library(tap/raw), [term_wants_tap_expansion/0]). 4
5:- dynamic test_case/1. 6:- dynamic user:term_skips_tap_expansion/1. 7user:term_expansion(Clause, _) :-
8 Clause = (Head :- _),
9 10 term_wants_tap_expansion,
11 \+ term_skips_tap_expansion(Clause),
12 tap:assertz(test_case(Head)),
13 fail. 14user:term_expansion(Clause, (Head :- Clause)) :-
15 16 term_wants_tap_expansion,
17 \+ functor(Clause, :-, _),
18 Clause \== end_of_file,
19 \+ term_skips_tap_expansion(Clause),
20 format(atom(Head), "~w", [Clause]),
21 Head \== Clause,
22 tap:assertz(test_case(Head)).
23user:term_expansion(Fact, (Fact :- true)) :-
24 25 term_wants_tap_expansion,
26 functor(Fact, _, 0),
27 Fact \== end_of_file,
28 \+ term_skips_tap_expansion(Fact),
29 tap:assertz(test_case(Fact))