

s --> np, vp. 

np --> d, n. 

% Vorsicht: Linksrekursive Regel
%np --> np, comp, np.
%comp --> [and].

% Schmutzige Lösung:
%
% Hack mit Hilfsprädikaten snoop/4 und find_conj/2 zur Vermeidung
% der Linksrekursion
% (Illustration der Interaktion von DCG-Syntax mit 'regulären'
%  Prologprädikaten)

np --> snoop(L1,L2), {find_conj(L1,L1mod), L2=L1mod}, np, np.

snoop(Xs,Ys,Xs,Ys).
find_conj([D,N,and|Tail],[D,N|Tail]).


vp --> v, np. 

d --> [the]; [a]. 

n --> [dog]; [cat]; [gardener]; [policeman]; [butler]. 

v --> [chased]; [saw]. 










