From b825c0e14a8b8f973249308a36838b5b315b4a27 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Thu, 14 Feb 2019 10:23:10 -0200 Subject: [PATCH] (Por) add ter as optional auxiliary verb - make it the default - add paradigm to pick verb type (pick auxiliary verb or make it reflexive) (Por,Spa) fix lexicon entry --- src/portuguese/DiffPor.gf | 12 +++++++++--- src/portuguese/LexiconPor.gf | 2 +- src/portuguese/ParadigmsPor.gf | 15 +++++++++++++++ src/spanish/LexiconSpa.gf | 2 +- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/portuguese/DiffPor.gf b/src/portuguese/DiffPor.gf index 4ed6714cb..4835c1e4d 100644 --- a/src/portuguese/DiffPor.gf +++ b/src/portuguese/DiffPor.gf @@ -8,7 +8,7 @@ instance DiffPor of DiffRomance - [iAdvQuestionInv,chooseTA,otherInv,partAgr,sta param Prepos = P_de | P_a | P_em | P_por ; - VType = VHabere | VRefl ; + VType = VTer | VHaver | VRefl ; oper partAgr : VType -> Bool ; @@ -159,7 +159,12 @@ instance DiffPor of DiffRomance - [iAdvQuestionInv,chooseTA,otherInv,partAgr,sta possCase = \_,_,c -> prepCase c ; oper - auxVerb : VType -> (VF => Str) = \_ -> haver_V.s ; + auxVerb : VType -> (VF => Str) ; + auxVerb vt = case vt of { + VTer => ter_V.s ; + VHaver => haver_V.s ; + _ => ter_V.s + } ; negation : RPolarity => (Str * Str) = table { RPos => <[],[]> ; @@ -266,11 +271,12 @@ instance DiffPor of DiffRomance - [iAdvQuestionInv,chooseTA,otherInv,partAgr,sta essere_V : Verb = verboV (ser_Besch "ser") ; stare_V : Verb = verboV (estar_Besch "estar") ; + ter_V : Verb = verboV (ter_Besch "ter") ; haver_V : Verb = verboV (haver_Besch "haver") ; ficar_V : Verb = verboV (ficar_Besch "ficar") ; verboV : Verbum -> Verb ; -- make a verb of type haver - verboV v = verbBesch v ** {vtyp = VHabere ; p = [] ; lock_V = <>} ; + verboV v = verbBesch v ** {vtyp = VTer ; p = [] } ; } ; diff --git a/src/portuguese/LexiconPor.gf b/src/portuguese/LexiconPor.gf index 4dc0f564b..c7d5cfb14 100644 --- a/src/portuguese/LexiconPor.gf +++ b/src/portuguese/LexiconPor.gf @@ -281,7 +281,7 @@ lin kill_V2 = mkV2 (mkV "matar" "morto") ; know_V2 = mkV2 (mkV "conhecer") ; learn_V2 = mkV2 (mkV "aprender") ; - leave_V2 = mkV2 (mkV "partir") ; + leave_V2 = mkV2 (mkV "partir") genitive ; like_V2 = mkV2 (mkV "gostar") genitive ; listen_V2 = mkV2 (mkV "escutar") ; lose_V2 = mkV2 (mkV (perder_Besch "perder")) ; diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index 93b769973..ead1f633d 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -298,6 +298,18 @@ oper --2 Verbs + VType : Type ; -- verb is reflexive / verb uses auxiliar X + VType = MorphoPor.VType ; + + auxTer : VType ; -- "ter" as auxiliary verb + auxTer = VTer ; + + auxHaver : VType ; -- "haver" as auxiliary verb + auxHaver = VHaver ; + + auxRefl : VType ; -- verb is reflexive + auxRefl = VRefl ; + regV : Str -> V ; --% regV s = case s of { chamar + "-se" => reflV (regV' chamar) ; @@ -362,6 +374,9 @@ oper mkV : V -> Str -> V -- particle verb = \v,p -> v ** {p = p} ; + mkV : V -> VType -> V -- choose auxiliary verb or make verb reflexive + = \v,vt -> v ** {vtyp = vt} ; + } ; -- To form reflexive verbs: diff --git a/src/spanish/LexiconSpa.gf b/src/spanish/LexiconSpa.gf index cde3c1a40..6325ce5f7 100644 --- a/src/spanish/LexiconSpa.gf +++ b/src/spanish/LexiconSpa.gf @@ -108,7 +108,7 @@ lin lamp_N = regN "lámpara" ; learn_V2 = dirV2 (regV "aprender") ; leather_N = regN "cuero" ; - leave_V2 = dirV2 (regV "partir") ; -- irse, dejar + leave_V2 = mkV2 (mkV "partir") genitive ; -- irse, dejar like_V2 = dirV2 (regV "gustar") ; listen_V2 = dirV2 (regV "escuchar") ; live_V = verboV (vivir_7 "vivir") ;