:-use_module(library(lists)).

verb --> [embrasse]; [frappe] ; [deteste].

noun(f) --> [femme] ; [fille].

noun(m) --> [garcon] ; [chien].

det(f) --> [la] ; [une].

det(m) --> [le] ; [un].

verb_phrase --> verb,noun_phrase.

noun_phrase --> det(FM), noun(FM).

sentence --> noun_phrase,verb_phrase.


% now translation

verb(Eng) --> {verb_dict(Fr,Eng)}, [Fr].

noun(woman,f) --> [femme].
noun(girl,f) --> [fille].

noun(boy,m) --> [garcon].
noun(dog,m) --> [chien].

det(the,f) --> [la].
det(a,f) --> [une].
det(the,m) --> [le].
det(a,m) --> [un].

verb_phrase([Vb|NP]) --> verb(Vb),noun_phrase(NP).

noun_phrase([Det,Nn]) --> det(Det,FM), noun(Nn,FM).

sentence(Sen) --> noun_phrase(NP),verb_phrase(VP), {append(NP,VP,Sen)}.

% verb dictionary

verb_dict(frappe,hits).
verb_dict(deteste,hates).
verb_dict(embrasse,loves).


