% Programm zur Erstellung eines (Verb)-Vollformenlexikons
% aus einem Stammformenlexikon.

:- use_module(flexion_slex).

erzeuge_vollformen(Datei) :-
    (% Ausgabedatei zum Schreiben oeffnen:
        tell(Datei),
     % Stammformeneintrag fuer ein Verb holen:
        lex(Stammform,v,Unterart,Flexionsklasse),
     % Stamm bilden:
        (atom_concat(X,en,Stammform) -> Stamm = X
        ; atom_concat(Stamm,n,Stammform)),
     % Formmerkmale holen:
        form(v,Form),
     % Zu Form passende Endung holen:
        (Flexionsklasse = rg(_Praefixlaenge)
        -> flexion_slex:endung(rg,Form,Endung)
        ; fail), % noch zu machen urg(...)
                % write('keine Endungstabelle fuer ')
                % write(Flexionsklasse)
     % Vollform bilden:
        atom_concat(Stamm,Endung,Vollform),
     % Kategorieausdruck bauen:
        Kategorie = v(Unterart,Form),
     % Vollfomrmeneintrag schreiben:
        portray_clause(v(Stammform,Kategorie,Vollform)),
     % Naechste Loesung (andere Form) bilden:
        fail
     % Wenn es keine Loesung mehr gibt: Ausgabedate schliessen
     ; told,
        format('Vollformen in Ausgabedatei ~w geschrieben.',[Datei])
    ).
     
