3.1.1 Esempio1 - Prolog come analizzatore
/* file: analisi_1.pl esempio di riconoscitore sintattico che usa il predicato append */
/* regole della grammatica */ proposizione(X) :- append(Y,Z,X),sn(Y),sv(Z). sn(X) :- append(Y,Z,X),articolo(Y),sostantivo(Z). sv(X) :- append(Y,Z,X),verbo(Y),sn(Z). /* definizione dei terminali */ articolo([il]). sostantivo([gatto]). sostantivo([topo]). verbo([mangia]).
/* definizione di append (non necessario inquesto Prolog)*/ /* append([],Lista,Lista). append([T|Lista1],Lista2,[T|Lista3]) :- append(Lista1,Lista2,Lista3). */
/* un goal per provare la grammatica */ ?- proposizione([il,gatto,mangia,il,topo]).