diff --git a/lib/resource-1.0/french/DiffFre.gf b/lib/resource-1.0/french/DiffFre.gf index 1244d474d..f08052117 100644 --- a/lib/resource-1.0/french/DiffFre.gf +++ b/lib/resource-1.0/french/DiffFre.gf @@ -41,6 +41,8 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in { _ => prepCase c ++ artDef g Sg (CPrep P_de) } ; + conjunctCase : NPForm -> NPForm = \c -> c ; + auxVerb : VType -> (VF => Str) = \vtyp -> case vtyp of { VHabere => avoir_V.s ; _ => copula.s diff --git a/lib/resource-1.0/french/ParadigmsFre.gf b/lib/resource-1.0/french/ParadigmsFre.gf index 5789aeba2..99df6a5e0 100644 --- a/lib/resource-1.0/french/ParadigmsFre.gf +++ b/lib/resource-1.0/french/ParadigmsFre.gf @@ -300,6 +300,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 = <>} ; 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 = <>} ; diff --git a/lib/resource-1.0/french/StructuralFre.gf b/lib/resource-1.0/french/StructuralFre.gf index 9277359b5..bc847f10b 100644 --- a/lib/resource-1.0/french/StructuralFre.gf +++ b/lib/resource-1.0/french/StructuralFre.gf @@ -78,22 +78,22 @@ lin somebody_NP = pn2np (mkPN ["quelqu'un"] Masc) ; somePl_Det = {s = \\_,c => prepCase c ++ "quelques" ; n = Pl} ; someSg_Det = {s = \\_,c => prepCase c ++ elision "quelqu" ; n = Sg} ; - something_NP = pn2np (mkPN ["quelque chose"] Fem) ; + something_NP = pn2np (mkPN ["quelque chose"] Masc) ; somewhere_Adv = ss ["quelque part"] ; --- ne - pas that_Quant = {s = \\g,c => prepCase c ++ genForms "ce" "cette" ! g} ; ---- cet - that_NP = pn2np (mkPN ["ceci"] Masc) ; + that_NP = mkNP ["ceci"] Masc Sg ; there7from_Adv = ss ["de là"] ; there7to_Adv = ss "là" ; --- y there_Adv = ss "là" ; therefore_PConj = ss "donc" ; - these_NP = pn2np (mkPN ["celles-ci"] Fem) ; ---- Pl + these_NP = mkNP ["celles-ci"] Fem Pl ; these_Quant = {s = \\_,c => prepCase c ++ "ces"} ; ---- ci they_Pron = mkPronoun "elles" "les" "leur" "eux" "leur" "leur" "leurs" Fem Pl P3 Clit1 ; this_Quant = {s = \\g,c => prepCase c ++ genForms "ce" "cette" ! g} ; ---- cet this_NP = pn2np (mkPN ["ceci"] Masc) ; - those_NP = pn2np (mkPN ["celles-là"] Fem) ; + those_NP = mkNP ["celles-là"] Fem Pl ; those_Quant = {s = \\_,c => prepCase c ++ "ces"} ; ---- là through_Prep = mkPreposition "par" ; too_AdA = ss "trop" ; diff --git a/lib/resource-1.0/romance/ConjunctionRomance.gf b/lib/resource-1.0/romance/ConjunctionRomance.gf index 877fa7c13..c7b4300e9 100644 --- a/lib/resource-1.0/romance/ConjunctionRomance.gf +++ b/lib/resource-1.0/romance/ConjunctionRomance.gf @@ -33,8 +33,16 @@ incomplete concrete ConjunctionRomance of Conjunction = ConsS = consrTable Mood comma ; BaseAdv = twoSS ; ConsAdv = consrSS comma ; - BaseNP x y = twoTable NPForm x y ** {a = conjAgr x.a y.a} ; - ConsNP xs x = consrTable NPForm comma xs x ** {a = conjAgr xs.a x.a} ; + BaseNP x y = { + s1 = \\c => x.s ! c ; + s2 = \\c => y.s ! (conjunctCase c) ; + a = conjAgr x.a y.a + } ; + ConsNP x xs = { + s1 = \\c => x.s ! c ++ comma ++ xs.s1 ! (conjunctCase c) ; + s2 = \\c => xs.s2 ! (conjunctCase c) ; + a = conjAgr x.a xs.a + } ; BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ; ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ; diff --git a/lib/resource-1.0/romance/DiffRomance.gf b/lib/resource-1.0/romance/DiffRomance.gf index c2cb93975..26dd145f6 100644 --- a/lib/resource-1.0/romance/DiffRomance.gf +++ b/lib/resource-1.0/romance/DiffRomance.gf @@ -21,6 +21,11 @@ oper artDef : Gender -> Number -> Case -> Str ; artIndef : Gender -> Number -> Case -> Str ; +-- This regulates whether a preposition is repeated in conjunction +-- (Fre "la somme de 3 et de 4", Ita "la somma di 3 e 4"). + + conjunctCase : NPForm -> NPForm ; + auxVerb : VType -> (VF => Str) ; negation : Polarity => (Str * Str) ; copula : Verb ; @@ -49,6 +54,7 @@ oper param Case = Nom | Acc | CPrep Prep ; + NPForm = Ton Case | Aton Case | Poss {g : Gender ; n : Number} ; --- AAgr oper Verb = {s : VF => Str ; vtyp : VType} ; diff --git a/lib/resource-1.0/romance/ResRomance.gf b/lib/resource-1.0/romance/ResRomance.gf index c25acde3c..c04c8fb71 100644 --- a/lib/resource-1.0/romance/ResRomance.gf +++ b/lib/resource-1.0/romance/ResRomance.gf @@ -6,10 +6,6 @@ interface ResRomance = DiffRomance ** open CommonRomance, Prelude in { --2 Constants uniformly defined in terms of language-dependent constants -param - - NPForm = Ton Case | Aton Case | Poss {g : Gender ; n : Number} ; --- AAgr - oper nominative : Case = Nom ;