:- tree_extensions.
:- multifile if/2.

% Lexicon
pase ~~> (word,cat:verb).
pepa ~~> (word,cat:(noun,case:nom)).
kozu ~~> (word,cat:(noun,case:acc)).

% Phrase Structure Rules

sent ##
    (phrase,
     cat:sentence,
     head_dtr:Head,
     nonh_dtr:Subj)
===>
    cat> (Subj,
          cat:(noun,
               case:nom)),
    cat> (Head,
          cat:(verb_phrase;verb_intrans)).

vp ##
    (phrase,
     cat:verb_phrase,
     head_dtr:Head,
     nonh_dtr:Obj)
===>
    cat> (Head,
          cat:verb_trans),
    cat> (Obj,
          cat:(noun,
               case:acc)).

% Test sentences

t(1, "pepa pase", phrase, 1, 'Gramatika1: neprechodne sloveso').
t(2, "pepa pase kozu", phrase, 1, 'Gramatika1: prechodne sloveso').
t(3, "pase kozu", phrase, 1, 'Gramatika1: prechodne sloveso').
t(4, "pase pepa", phrase, 0, 'Gramatika1: neumi volny slovosled').
t(5, "kozu pase pepa", phrase, 0, 'Gramatika1: neumi volny slovosled').
t(6, "kozu pepa pase", phrase, 0, 'Gramatika1: neumi volny slovosled').
t(7, "pase kozu pepa", phrase, 0, 'Gramatika1: neumi volny slovosled').
t(8, "pase pepa kozu", phrase, 0, 'Gramatika1: neumi volny slovosled').
t(9, "pepa kozu pase", phrase, 0, 'Gramatika1: neumi volny slovosled').
t(10, "kozu pase", bot, 0, 'Gramatika1: neumi volny slovosled').

