%start S # Grammaire # --------- S[sem=] -> Phrase[sem=?s1] ConjCoord Phrase[sem=?s2] S[sem=?s] -> Phrase[sem=?s] Phrase[sem=] -> SyntNominal[sem=?s] SyntVerbal[sem=?v] Phrase[sem=] -> SyntNominal[sem=?s] SyntNegatif[sem=?v] SyntNominal[sem=?np] -> NomPropre[sem=?np] SyntNominal[sem=] -> Det[sem=?d] NBarre[sem=?n] NBarre[sem=?n] -> NomCommun[sem=?n] NBarre[sem=] -> NBarre[sem=?n] SyntAdject[sem=?a] SyntVerbal[sem=?v] -> VBarre[sem=?v] SyntVerbal[sem=?a] -> Copule Adjectif[sem=?a] SyntNegatif[sem=] -> Neg[sem=?n] SyntVerbal[sem=?v] VBarre[sem=?np] -> VerbeInt[sem=?np] VBarre[sem=?np] -> VerbeInt[sem=?np] AdvNeg VBarre[sem=] -> VerbeTrans[sem=?v] SyntNominal[sem=?n] VBarre[sem=] -> VerbeTrans[sem=?v] AdvNeg SyntNominal[sem=?n] VBarre[sem=] -> VerbeOblique[sem=?v] Prep SyntNominal[sem=?n] VBarre[sem=] -> VerbeOblique[sem=?v] AdvNeg Prep SyntNominal[sem=?n] # Type-shifting SyntAdject[sem=<\P Q x. (P(x) and Q(x))(?a)>] -> Adjectif[sem=?a] # Lexique # ------- NomPropre[sem=<\P.P(jean)>] -> 'Jean' NomPropre[sem=<\P.P(marie)>] -> 'Marie' NomCommun[sem=<\x. child(x)>] -> 'enfants' NomCommun[sem=<\x. child(x)>] -> 'enfant' NomCommun[sem=<\x. child(x)>] -> 'adulte' Adjectif[sem=<\x. sick(x)>] -> 'malade' VerbeInt[sem=<\x. sleep(x)>] -> 'dort' VerbeInt[sem=<\x. sing(x)>] -> 'chante' VerbeTrans[sem=<\X y. X(\x. know(y,x))>] -> 'connaît' VerbeTrans[sem=<\X y. X(\x. love(y,x))>] -> 'aime' VerbeOblique[sem=<\X y. X(\x. speaks(y,x))>] -> 'parle' Det[sem=<\P Q. exists x. (P(x) and Q(x))>] -> 'Un' | 'un' Det[sem=<\P Q. all x. (P(x) implies Q(x))>] -> 'Tout' Det[sem=<\P Q. all x. (P(x) implies Q(x))>] -> TousTok LesTok TousTok -> 'Tous' | 'tous' LesTok -> 'les' Copule -> 'est' Prep -> 'à' ConjCoord -> 'et' Neg[sem=<\P x. not P(x)>] -> 'ne' AdvNeg -> 'pas'