diff --git a/lib/resource-1.0/french/StructuralFre.gf b/lib/resource-1.0/french/StructuralFre.gf index e760be671..3230e4be3 100644 --- a/lib/resource-1.0/french/StructuralFre.gf +++ b/lib/resource-1.0/french/StructuralFre.gf @@ -7,7 +7,10 @@ lin above_Prep = {s = ["au dessus"] ; c = MorphoFre.genitive ; isDir = False} ; after_Prep = mkPreposition "après" ; - all_Predet = {s = aagrForms "tout" "toute" "tous" "toutes"} ; + all_Predet = { + s = \\a,c => prepCase c ++ aagrForms "tout" "toute" "tous" "toutes" ! a ; + c = Nom + } ; almost_AdA, almost_AdN = ss "presque" ; always_AdV = ss "toujours" ; although_Subj = ss ("bien" ++ elisQue) ** {m = Conjunct} ; @@ -24,9 +27,9 @@ lin can_VV = mkVV pouvoir_V ; during_Prep = mkPreposition "pendant" ; either7or_DConj = {s1,s2 = "ou" ; n = Pl} ; --- everybody_NP = mkNameNounPhrase ["tout le monde"] Masc ; + everybody_NP = pn2np (mkPN ["tout le monde"] Masc) ; every_Det = {s = \\_,_ => "chaque" ; n = Sg} ; --- everything_NP = mkNameNounPhrase ["tout"] Masc ; + everything_NP = pn2np (mkPN ["tout"] Masc) ; everywhere_Adv = ss "partout" ; first_Ord = {s = \\ag => (regA "premier").s ! Posit ! AF ag.g ag.n} ; from_Prep = complGen ; --- @@ -38,7 +41,7 @@ lin here7to_Adv = ss "ici" ; here_Adv = ss "ici" ; how_IAdv = ss "comment" ; - how8many_IDet = {s = \\_ => "combien" ++ elisDe ; n = Pl} ; + how8many_IDet = {s = \\_,c => prepCase c ++ "combien" ++ elisDe ; n = Pl} ; if_Subj = ss elisSi ** {m = Indic} ; in8front_Prep = mkPreposition "devant" ; i_Pron = @@ -51,18 +54,19 @@ lin "il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses" Masc Sg P3 Clit2 ; less_CAdv = ss "moins" ; --- many_Det = mkDeterminer1 plural "plusieurs" ; --- most8many_Det = plupartDet ; --- most_Det = mkDeterminer1 singular (["la plupart"] ++ elisDe) ; --- de --- much_Det = mkDeterminer1 singular ("beaucoup" ++ elisDe) ; --- de + many_Det = {s = \\_,c => prepCase c ++ "plusierus" ; n = Pl} ; + more_CAdv = ss "plus" ; + most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de} ; + much_Det = {s = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl} ; must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ; no_Phr = ss "non" ; --- and also Si! on_Prep = mkPreposition "sur" ; one_Quant = {s = \\g,c => prepCase c ++ genForms "un" "une" ! g} ; - only_Predet = {s = \\_ => "seulement"} ; --- seul(e)(s) + only_Predet = {s = \\_,c => prepCase c ++ "seulement" ; c = Nom} ; --- seul(e)(s) or_Conj = {s = "ou" ; n = Sg} ; otherwise_PConj = ss "autrement" ; part_Prep = complGen ; + please_Voc = ss ["s'il vous plaît"] ; possess_Prep = complGen ; quite_Adv = ss "assez" ; she_Pron = @@ -71,10 +75,10 @@ lin Fem Sg P3 Clit2 ; so_AdA = ss "si" ; --- somebody_NP = mkNameNounPhrase ["quelqu'un"] Masc ; --- some_Det = mkDeterminer1 singular "quelque" ; --- some_NDet = mkDeterminerNum "quelques" "quelques" ; --- something_NP = mkNameNounPhrase ["quelque chose"] Masc ; + 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) ; 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) ; @@ -82,12 +86,15 @@ lin there7to_Adv = ss "là" ; --- y there_Adv = ss "là" ; therefore_PConj = ss "donc" ; --- these_NDet = mkDeterminerNum "ces" "ces" ; --- ci --- they_Pron = pronNounPhrase pronIls ; --- they8fem_Pron = pronNounPhrase pronElles ; + these_NP = pn2np (mkPN ["celles-ci"] Fem) ; + 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_NDet = mkDeterminerNum "ces" "ces" ; --- là + those_NP = pn2np (mkPN ["celles-là"] Fem) ; + those_Quant = {s = \\_,c => prepCase c ++ "ces"} ; ---- là thou_Pron = mkPronoun "tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes" Fem Sg P2 Clit1 ; @@ -105,10 +112,10 @@ lin when_IAdv = ss "quand" ; when_Subj = ss "quand" ** {m = Indic} ; where_IAdv = ss "où" ; --- which8many_IDet = mkDeterminerNum "quels" "quelles" ** {n = Pl} ; --- which8one_IDet = quelDet ; - whoSg_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Fem Sg} ; + whichPl_IDet = {s = \\g,c => prepCase c ++ genForms "quel" "quelle" ! g ; n = Sg} ; + whichSg_IDet = {s = \\g,c => prepCase c ++ genForms "quels" "quelles" ! g; n = Pl} ; whoPl_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Fem Pl} ; + whoSg_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Fem Sg} ; why_IAdv = ss "pourquoi" ; without_Prep = mkPreposition "sans" ; with_Prep = mkPreposition "avec" ; diff --git a/lib/resource-1.0/romance/CatRomance.gf b/lib/resource-1.0/romance/CatRomance.gf index 429179e8f..be794fc93 100644 --- a/lib/resource-1.0/romance/CatRomance.gf +++ b/lib/resource-1.0/romance/CatRomance.gf @@ -26,12 +26,12 @@ incomplete concrete CatRomance of Cat = QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; IP = {s : Case => Str ; a : AAgr} ; IAdv = {s : Str} ; - IDet = {s : Gender => Str ; n : Number} ; + IDet = {s : Gender => Case => Str ; n : Number} ; -- Relative RCl = {s : Tense => Anteriority => Polarity => Mood => Agr => Str} ; ----- RP = {s : AAgr => RelForm => Str ; a : RAgr} ; + RP = {s : AAgr => RelForm => Str} ; ---- ; a : RAgr} ; -- Verb @@ -50,7 +50,7 @@ incomplete concrete CatRomance of Cat = Det = {s : Gender => Case => Str ; n : Number} ; QuantSg = {s : Gender => Case => Str} ; QuantPl = {s : Gender => Case => Str} ; - Predet = {s : AAgr => Str} ; + Predet = {s : AAgr => Case => Str ; c : Case} ; -- la plupart de... Num = {s : Gender => Str} ; Ord = {s : AAgr => Str} ; diff --git a/lib/resource-1.0/romance/NounRomance.gf b/lib/resource-1.0/romance/NounRomance.gf index b1411a8a0..c3013573a 100644 --- a/lib/resource-1.0/romance/NounRomance.gf +++ b/lib/resource-1.0/romance/NounRomance.gf @@ -19,7 +19,7 @@ incomplete concrete NounRomance of Noun = UsePron p = p ; PredetNP pred np = { - s = \\c => prepCase (npform2case c) ++ pred.s ! np.a ++ np.s ! Ton Acc ; + s = \\c => pred.s ! np.a ! npform2case c ++ np.s ! case2npform pred.c ; a = np.a ; c = Clit0 } ; @@ -100,21 +100,17 @@ incomplete concrete NounRomance of Noun = g = g ; } ; -{- RelCN cn rs = let g = cn.g in { - s = \\n,d,c => cn.s ! n ! d ! c ++ rs.s ! agrP3 g n ; - g = g ; - isMod = cn.isMod + s = \\n => cn.s ! n ++ rs.s ! Indic ! agrP3 g n ; --- mood + g = g } ; SentCN cn sc = let g = cn.g in { - s = \\n,d,c => cn.s ! n ! d ! c ++ sc.s ; - g = g ; - isMod = cn.isMod + s = \\n => cn.s ! n ++ sc.s ; + g = g } ; AdvCN cn sc = let g = cn.g in { - s = \\n,d,c => cn.s ! n ! d ! c ++ sc.s ; - g = g ; - isMod = cn.isMod + s = \\n => cn.s ! n ++ sc.s ; + g = g } ; --} + }