5:- module(morfeusz, [
6 morfeusz/4,
7 morfeusz_analyse/2,
8 dict_id/1,
9 set_praet/1,
10 change_instance/1,
11 generate/2
12 ]). 13
15:- use_foreign_library(foreign(morfeusz2_swipl)).
21morfeusz(String, _, _, _) :-
22 var(String),
23 !,
24 fail.
25morfeusz(_, Predicate, _, _) :-
26 not(atom(Predicate)),
27 !,
28 fail.
29morfeusz(String, Predicate, Start, Stop) :-
30 morfeusz_analyse(String, MO),
31 abolish(Predicate/5),
32 budujgrafmorf(Predicate, Start, Stop, MO).
33
34budujgrafmorf(_, 0, 0, []).
35budujgrafmorf(Pred, Start, Stop, [i(Start, Stop, F, H, I)]) :- !,
36 T =.. [Pred, Start, Stop, F, H, I],
37 assertz(T).
38budujgrafmorf(Pred, Start, Stop, [i(Start, K, F, H, I) | MOO]) :-
39 T =.. [Pred, Start, K, F, H, I],
40 assertz(T),
41 budujgrafmorf(Pred, _, Stop, MOO).
42