% nacteni:
/* ['12.3_13.pl']. */
sentence(S,S0) :- noun_phrase(S,S1), verb_phrase(S1,S0).
noun_phrase(S,S0) :- determiner(S,S1), noun_phrase2(S1,S0).
noun_phrase(S,S0) :- noun_phrase2(S,S0).
noun_phrase2(S,S0) :- adjective(S,S1), noun_phrase2(S1,S0).
noun_phrase2(S,S0) :- noun(S,S0).
verb_phrase(S,S0) :- verb(S,S0).
verb_phrase(S,S0) :- verb(S,S1), noun_phrase(S1,S0).
determiner([the|S],S).
determiner([a|S],S).
verb([sings|S],S).
noun([boy|S],S).
noun([song|S],S).
adjective([ young|S],S).
start:-
write('Gramatiky - rozdilove seznamy'),nl,nl,
write('Zkuste si zadat dotaz "sentence([the,young,boy,sings,a,song],[])"').
?-start.
:- retractall(start/0).