diff --git a/src/portuguese/ExtraPor.gf b/src/portuguese/ExtraPor.gf index f3bf54114..6c8e181c5 100644 --- a/src/portuguese/ExtraPor.gf +++ b/src/portuguese/ExtraPor.gf @@ -9,9 +9,9 @@ concrete ExtraPor of ExtraPorAbs = ExtraRomancePor ** youSg8fem_Pron = pronAgr S.youSg_Pron Fem Sg P3 ; we8fem_Pron = pronAgr S.we_Pron Fem Pl P1 ; youPl8fem_Pron = pronAgr S.youPl_Pron Fem Pl P3 ; - youPolPl_Pron = S.youPlPol_Pron ; - youPol8fem_Pron = pronAgr S.youSgPol_Pron Fem Sg P2 ; - youPolPl8fem_Pron = pronAgr S.youPlPol_Pron Fem Pl P2 ; + youPolPl_Pron = S.youPol_Pron ** pronLin "vós" "vos" "vos" "vós" ; + youPol8fem_Pron = pronAgr S.youPol_Pron Fem Sg P2 ; + youPolPl8fem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ; they8fem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ; diff --git a/src/portuguese/LexiconPor.gf b/src/portuguese/LexiconPor.gf index 5d0c80a20..8891dcc87 100644 --- a/src/portuguese/LexiconPor.gf +++ b/src/portuguese/LexiconPor.gf @@ -281,8 +281,8 @@ lin kill_V2 = dirV2 (mkV "matar") ; know_V2 = mkV2 (mkV "conhecer") ; learn_V2 = dirV2 (mkV "aprender") ; - leave_V2 = dirV2 (mkV "partir") ; -- irse, dejar - like_V2 = dirV2 (mkV "gostar") ; + leave_V2 = dirV2 (mkV "partir") ; + like_V2 = mkV2 (mkV "gostar") genitive ; listen_V2 = dirV2 (mkV "escutar") ; lose_V2 = dirV2 (mkV (perder_44 "perder")) ; love_V2 = dirV2 (mkV "amar") ; diff --git a/src/portuguese/MorphoPor.gf b/src/portuguese/MorphoPor.gf index 712eaf550..211e0659c 100644 --- a/src/portuguese/MorphoPor.gf +++ b/src/portuguese/MorphoPor.gf @@ -210,8 +210,11 @@ oper hasClit = True ; isPol = False } ** pronLin ele o lhe Ele ; - pronLin : (_,_,_,_ : Str) -> {s : Case => {c1,c2,comp,ton : Str}} - = \você, o, lhe, Você -> + pronLin : (_,_,_,_ : Str) -> {s : Case => {c1,c2,comp,ton : Str}} ; + -- change pronoun's linearizations without changing its agreement + -- features (doesn't change possessive linearizations either). e.g., + -- he_Pron -> you_Pron + pronLin = \você, o, lhe, Você -> let aVocê : Case -> Str = \x -> prepCase x ++ Você ; in @@ -223,11 +226,15 @@ oper } } ; - pronAgr : Pronoun -> Gender -> Number -> Person -> Pronoun - = \pron, g, n, p -> pron ** {a = Ag g n p} ; + pronAgr : Pronoun -> Gender -> Number -> Person -> Pronoun ; + -- change a pronoun's agreement features without changing its + -- linearization field (e.g., You_Pron -> YouFem_Pron) + pronAgr = \pron, g, n, p -> pron ** {a = Ag g n p} ; mkPronFrom : Pronoun -> (_,_,_,_ : Str) -> Gender -> Number -> Person - -> Pronoun = \pron, você, o, lhe, Você, g, n, p -> + -> Pronoun ; + -- change everything in a pronoun but its possessive linearizations + mkPronFrom = \pron, você, o, lhe, Você, g, n, p -> (pronAgr pron g n p) ** pronLin você o lhe Você ; diff --git a/src/portuguese/StructuralPor.gf b/src/portuguese/StructuralPor.gf index f47f81ff9..67d705012 100644 --- a/src/portuguese/StructuralPor.gf +++ b/src/portuguese/StructuralPor.gf @@ -24,7 +24,9 @@ concrete StructuralPor of Structural = CatPor ** "ela" "a" "lhe" "ela" Fem Sg P3 ; youSg_Pron = he_Pron ** pronLin "você" "te" "lhe" "você" ; - youPol_Pron = youPlPol_Pron | youSgPol_Pron ; + youPol_Pron = mkPronoun "tu" "te" "te" "ti" + "teu" "tua" "teus" "tuas" + Masc Sg P2 ; we_Pron = mkPronoun "nós" "nos" "nos" "nós" "nosso" "nossa" "nossos" "nossas" @@ -64,7 +66,7 @@ concrete StructuralPor of Structural = CatPor ** can8know_VV = mkVV (mkV (saber_35 "saber")) ; can_VV = mkVV (mkV (poder_36 "poder")) ; during_Prep = mkPrep "durante" ; - either7or_DConj = {s1,s2 = "o" ; n = Sg} ; + either7or_DConj = {s1,s2 = "ou" ; n = Sg} ; everybody_NP = makeNP ["todos"] Masc Pl ; every_Det = mkDeterminer "cada" "cada" Sg False ; everything_NP = pn2np (mkPN ["todo"] Masc) ; @@ -158,13 +160,6 @@ concrete StructuralPor of Structural = CatPor ** -- is it still necessary after deleting the Spa confusion? y/e etConj : {s : Str ; n : MorphoPor.Number} = {s = "e"} ** {n = Pl} ; - youSgPol_Pron : Pronoun = - mkPronoun "tu" "te" "te" "ti" "teu" "tua" "teus" "tuas" - Masc Sg P2 ; - youPlPol_Pron : Pronoun = - mkPronoun "vós" "vos" "vos" "vós" - "vosso" "vossa" "vossos" "vossas" - Masc Pl P2 ; lin as_CAdv = X.mkCAdv "tão" conjThan ; ---- have_V2 = dirV2 (mkV (ter_1 "ter")) ;