mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-10 11:42:51 -06:00
Romance clitics almost OK ; bug fix in tb -c
This commit is contained in:
@@ -4,6 +4,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
||||
|
||||
param
|
||||
Prep = P_de | P_a ;
|
||||
NPForm = Ton Case | Aton Case | Poss {g : Gender ; n : Number} ; --- AAgr
|
||||
VType = VHabere | VEsse | VRefl ;
|
||||
|
||||
oper
|
||||
@@ -56,6 +57,14 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
||||
vpAgrClit : Agr -> VPAgr = \a ->
|
||||
VPAgrClit (aagr a.g a.n) ; --- subty
|
||||
|
||||
placeNewClitic = \ci,c,pro,isc,old ->
|
||||
let new = if_then_Str isc (pro.s ! Aton c) []
|
||||
in
|
||||
case pro.a.p of {
|
||||
P1 | P2 => new ++ old ;
|
||||
_ => old ++ new
|
||||
} ;
|
||||
|
||||
negation : Polarity => (Str * Str) = table {
|
||||
Pos => <[],[]> ;
|
||||
Neg => <elisNe,"pas">
|
||||
|
||||
@@ -161,8 +161,8 @@ oper
|
||||
-- The use of "en" as atonic genitive is debatable.
|
||||
|
||||
mkPronoun : (_,_,_,_,_,_,_ : Str) ->
|
||||
Gender -> Number -> Person -> ClitType -> Pronoun =
|
||||
\il,le,lui,Lui,son,sa,ses,g,n,p,c ->
|
||||
Gender -> Number -> Person -> Pronoun =
|
||||
\il,le,lui,Lui,son,sa,ses,g,n,p ->
|
||||
{s = table {
|
||||
Ton x => prepCase x ++ Lui ;
|
||||
Aton Nom => il ;
|
||||
@@ -174,128 +174,13 @@ oper
|
||||
Poss {n = Pl} => ses
|
||||
} ;
|
||||
a = {g = g ; n = n ; p = p} ;
|
||||
c = c
|
||||
hasClit = True
|
||||
} ;
|
||||
|
||||
elisPoss : Str -> Str = \s ->
|
||||
pre {s + "a" ; s + "on" / voyelle} ;
|
||||
{-
|
||||
pronJe = mkPronoun
|
||||
(elision "j")
|
||||
(elision "m")
|
||||
(elision "m")
|
||||
"moi"
|
||||
"mon" (elisPoss "m") "mes"
|
||||
PNoGen -- gender cannot be known from pronoun alone
|
||||
Sg
|
||||
P1
|
||||
Clit1 ;
|
||||
|
||||
pronTu = mkPronoun
|
||||
"tu"
|
||||
(elision "t")
|
||||
(elision "t")
|
||||
"toi"
|
||||
"ton" (elisPoss "t") "tes"
|
||||
PNoGen
|
||||
Sg
|
||||
P2
|
||||
Clit1 ;
|
||||
|
||||
pronIl = mkPronoun
|
||||
"il"
|
||||
(elision "l")
|
||||
"lui"
|
||||
"lui"
|
||||
"son" (elisPoss "s") "ses"
|
||||
(PGen Masc)
|
||||
Sg
|
||||
P3
|
||||
Clit2 ;
|
||||
|
||||
---- A hack to get the dative form "y".
|
||||
pronY = mkPronoun
|
||||
"il"
|
||||
(elision "l")
|
||||
"y"
|
||||
"lui"
|
||||
"en" "en" "en"
|
||||
(PGen Masc)
|
||||
Sg
|
||||
P3
|
||||
Clit2 ;
|
||||
|
||||
pronElle = mkPronoun
|
||||
"elle"
|
||||
elisLa
|
||||
"lui"
|
||||
"elle"
|
||||
"son" (elisPoss "s") "ses"
|
||||
(PGen Fem)
|
||||
Sg
|
||||
P3
|
||||
Clit2 ;
|
||||
|
||||
pronNous = mkPronoun
|
||||
"nous"
|
||||
"nous"
|
||||
"nous"
|
||||
"nous"
|
||||
"notre" "notre" "nos"
|
||||
PNoGen
|
||||
Pl
|
||||
P1
|
||||
Clit3 ;
|
||||
|
||||
pronVous = mkPronoun
|
||||
"vous"
|
||||
"vous"
|
||||
"vous"
|
||||
"vous"
|
||||
"votre" "votre" "vos"
|
||||
PNoGen
|
||||
Pl --- depends!
|
||||
P2
|
||||
Clit3 ;
|
||||
|
||||
pronIls = mkPronoun
|
||||
"ils"
|
||||
"les"
|
||||
"leur"
|
||||
"eux"
|
||||
"leur" "leur" "leurs"
|
||||
(PGen Masc)
|
||||
Pl
|
||||
P3
|
||||
Clit1 ;
|
||||
|
||||
pronElles = mkPronoun
|
||||
"elles"
|
||||
"les"
|
||||
"leur"
|
||||
"elles"
|
||||
"leur" "leur" "leurs"
|
||||
(PGen Fem)
|
||||
Pl
|
||||
P3
|
||||
Clit1 ;
|
||||
|
||||
personPron : Gender -> Number -> Person -> Pronoun = \g,n,p ->
|
||||
case <n,p> of {
|
||||
<Sg,P1> => pronJe ;
|
||||
<Sg,P2> => pronTu ;
|
||||
<Sg,P3> => case g of {
|
||||
Masc => pronIl ;
|
||||
Fem => pronElle
|
||||
} ;
|
||||
<Pl,P1> => pronNous ;
|
||||
<Pl,P2> => pronVous ;
|
||||
<Pl,P3> => case g of {
|
||||
Masc => pronIls ;
|
||||
Fem => pronElles
|
||||
}
|
||||
} ;
|
||||
-}
|
||||
--2 Determiners
|
||||
--
|
||||
-- Determiners, traditionally called indefinite pronouns, are inflected
|
||||
|
||||
@@ -167,10 +167,6 @@ oper
|
||||
|
||||
compADeg : A -> A ;
|
||||
|
||||
-- From a given $A$, it is possible to get back to $A$.
|
||||
|
||||
adegA : A -> A ;
|
||||
|
||||
-- For prefixed adjectives, the following function is
|
||||
-- provided.
|
||||
|
||||
@@ -259,7 +255,6 @@ oper
|
||||
mkV2Q : V -> Preposition -> V2Q ;
|
||||
|
||||
mkAS : A -> AS ;
|
||||
subjAS : A -> AS ;
|
||||
mkA2S : A -> Preposition -> A2S ;
|
||||
mkAV : A -> Preposition -> AV ;
|
||||
mkA2V : A -> Preposition -> Preposition -> A2V ;
|
||||
@@ -301,7 +296,7 @@ oper
|
||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
||||
|
||||
mkPN x g = {s = x ; g = g} ** {lock_PN = <>} ;
|
||||
mkNP x g n = {s = (pn2np (mkPN x g)).s; a = agrP3 g n ; c = Clit0} ** {lock_NP = <>} ;
|
||||
mkNP x g n = {s = (pn2np (mkPN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ;
|
||||
|
||||
mkA a b c d = compADeg {s = \\_ => (mkAdj a c b d).s ; isPre = False ; lock_A = <>} ;
|
||||
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; lock_A = <>} ;
|
||||
|
||||
@@ -36,7 +36,7 @@ lin
|
||||
he_Pron =
|
||||
mkPronoun
|
||||
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
|
||||
Masc Sg P3 Clit2 ;
|
||||
Masc Sg P3 ;
|
||||
here7from_Adv = ss "d'ici" ;
|
||||
here7to_Adv = ss "ici" ;
|
||||
here_Adv = ss "ici" ;
|
||||
@@ -47,12 +47,12 @@ lin
|
||||
i_Pron =
|
||||
mkPronoun
|
||||
(elision "j") (elision "m") (elision "m") "moi" "mon" (elisPoss "m") "mes"
|
||||
Fem Sg P1 Clit1 ;
|
||||
Fem Sg P1 ;
|
||||
in_Prep = mkPreposition "dans" ;
|
||||
it_Pron =
|
||||
mkPronoun
|
||||
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
|
||||
Masc Sg P3 Clit2 ;
|
||||
Masc Sg P3 ;
|
||||
less_CAdv = ss "moins" ;
|
||||
many_Det = {s = \\_,c => prepCase c ++ "plusieurs" ; n = Pl} ;
|
||||
more_CAdv = ss "plus" ;
|
||||
@@ -72,7 +72,7 @@ lin
|
||||
she_Pron =
|
||||
mkPronoun
|
||||
"elle" elisLa "lui" "elle" "son" (elisPoss "s") "ses"
|
||||
Fem Sg P3 Clit2 ;
|
||||
Fem Sg P3 ;
|
||||
|
||||
so_AdA = ss "si" ;
|
||||
somebody_NP = pn2np (mkPN ["quelqu'un"] Masc) ;
|
||||
@@ -94,7 +94,7 @@ lin
|
||||
these_NP = mkNP ["celles-ci"] Fem Pl ;
|
||||
they_Pron = mkPronoun
|
||||
"elles" "les" "leur" "eux" "leur" "leur" "leurs"
|
||||
Fem Pl P3 Clit1 ;
|
||||
Fem Pl P3 ;
|
||||
this_Quant = {s =
|
||||
table {
|
||||
Sg => \\g,c => prepCase c ++ genForms "ce" "cette" ! g ; ---- cet ; ci
|
||||
@@ -111,7 +111,7 @@ lin
|
||||
want_VV = mkVV (vouloir_V2 ** {lock_V = <>}) ;
|
||||
we_Pron =
|
||||
mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos"
|
||||
Fem Pl P1 Clit3 ;
|
||||
Fem Pl P1 ;
|
||||
whatSg_IP = {s = \\c => prepCase c ++ "quoi" ; a = aagr Fem Sg} ;
|
||||
whatPl_IP = {s = \\c => prepCase c ++ "quoi" ; a = aagr Fem Pl} ;
|
||||
when_IAdv = ss "quand" ;
|
||||
@@ -127,11 +127,11 @@ lin
|
||||
yes_Phr = ss "oui" ; --- si
|
||||
youSg_Pron = mkPronoun
|
||||
"tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes"
|
||||
Fem Sg P2 Clit1 ;
|
||||
Fem Sg P2 ;
|
||||
youPl_Pron, youPol_Pron =
|
||||
mkPronoun
|
||||
"vous" "vous" "vous" "vous" "votre" "votre" "vos"
|
||||
Fem Pl P2 Clit3 ;
|
||||
Fem Pl P2 ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user