1% Prolog interface to the morphological analyzer Morfeusz
    2%
    3% Author: Marcin WoliƄski
    4% This file is in the public domain.
    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
   14% this defines morfeusz_analyse/2:
   15:- use_foreign_library(foreign(morfeusz2_swipl)).
 morfeusz(+String, +Predicate, Start, Stop)
redefines predicate Predicate/5: Predicate(from,to,form,base,tag)
   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
   43%%% Local Variables:
   44%%% coding: utf-8
   45%%% mode: prolog
   46%%% End: