From 210e27e5093f67d6d2db0b0ae30cba2bbf7e157b Mon Sep 17 00:00:00 2001 From: odanoburu Date: Fri, 11 May 2018 23:41:47 -0300 Subject: [PATCH 01/11] fix linearization of either/or --- src/portuguese/StructuralPor.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/portuguese/StructuralPor.gf b/src/portuguese/StructuralPor.gf index f47f81ff9..6c7bf889f 100644 --- a/src/portuguese/StructuralPor.gf +++ b/src/portuguese/StructuralPor.gf @@ -64,7 +64,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) ; From dc9aa488a33ea80786ebde57f382e46b9be8927d Mon Sep 17 00:00:00 2001 From: odanoburu Date: Tue, 15 May 2018 15:38:54 -0300 Subject: [PATCH 02/11] (Por) minor updates - correction in Lexicon - documentation in Morpho - rm variants from Structural --- src/portuguese/LexiconPor.gf | 4 ++-- src/portuguese/MorphoPor.gf | 17 ++++++++++++----- src/portuguese/StructuralPor.gf | 11 +++-------- 3 files changed, 17 insertions(+), 15 deletions(-) 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 6c7bf889f..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" @@ -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")) ; From 528b15f41a0c0c110add133c5f254c15c2f48348 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 16 May 2018 09:03:42 -0300 Subject: [PATCH 03/11] (Por) correct references to extinct opers --- src/portuguese/ExtraPor.gf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 ; From e926d545235bb72244dda9127da9921f6f2134ab Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 16 May 2018 09:55:36 -0300 Subject: [PATCH 04/11] (Por) rm Spa remnants --- src/portuguese/ExtraSpaPor.gf | 37 -- src/portuguese/IrregSpaPor.gf | 1093 --------------------------------- 2 files changed, 1130 deletions(-) delete mode 100644 src/portuguese/ExtraSpaPor.gf delete mode 100644 src/portuguese/IrregSpaPor.gf diff --git a/src/portuguese/ExtraSpaPor.gf b/src/portuguese/ExtraSpaPor.gf deleted file mode 100644 index d926766e8..000000000 --- a/src/portuguese/ExtraSpaPor.gf +++ /dev/null @@ -1,37 +0,0 @@ --- Structures special for Pornish. These are not implemented in other --- Romance languages. - -abstract ExtraPorAbs = ExtraRomanceAbs ** { - - fun - --- Feminine variants of pronouns (those in $Structural$ are --- masculine, which is the default when gender is unknown). - - i8fem_Pron : Pron ; - these8fem_NP : NP ; - they8fem_Pron : Pron ; - this8fem_NP : NP ; - those8fem_NP : NP ; - - we8fem_Pron : Pron ; -- nosotras - whoPl8fem_IP : IP ; - whoSg8fem_IP : IP ; - - youSg8fem_Pron : Pron ; - youPl8fem_Pron : Pron ; -- vosotras - youPol8fem_Pron : Pron ; -- usted - - youPolPl_Pron : Pron ; -- ustedes - youPolPl8fem_Pron : Pron ; - - - ImpNeg : NP -> VP -> Utt ; --"no fumes" - InvQuestCl : Cl -> QCl ; - - - PassVPSlash_ser : VPSlash -> VP ; - - UseComp_estar : Comp -> VP ; -- esta lleno, as opposed to es lleno - -} diff --git a/src/portuguese/IrregSpaPor.gf b/src/portuguese/IrregSpaPor.gf deleted file mode 100644 index 3656dd46c..000000000 --- a/src/portuguese/IrregSpaPor.gf +++ /dev/null @@ -1,1093 +0,0 @@ -abstract IrregPorAbs = Cat ** { - flags coding=utf8 ; - fun abarse_V : V ; - fun abastecer_V : V ; - fun abeldar_V : V ; - fun aberrar_V : V ; - fun ablandecer_V : V ; - fun abnegar_V : V ; - fun abolir_V : V ; - fun aborrecer_V : V ; - fun abravecer_V : V ; - fun abrir_V : V ; - fun absolver_V : V ; - fun abstener_V : V ; - fun absterger_V : V ; - fun absterger2_V : V ; - fun abstraer_V : V ; - fun abuñolar_V : V ; - fun acaecer2_V : V ; - fun acaecer_V : V ; - fun acertar_V : V ; - fun aclarecer_V : V ; - fun acoger_V : V ; - fun acoger2_V : V ; - fun acollar_V : V ; - fun acomedirse_V : V ; - fun acontecer2_V : V ; - fun acontecer_V : V ; - fun acordar_V : V ; - fun acornar_V : V ; - fun acostar_V : V ; - fun acrecentar_V : V ; - fun acrecer_V : V ; - fun adestrar_V : V ; - fun adherir_V : V ; - fun adir_V : V ; - fun adolecer_V : V ; - fun adormecer_V : V ; - fun adormir_V : V ; - fun adquirir_V : V ; - fun adscribir_V : V ; - fun adstringir_V : V ; - fun aducir_V : V ; - fun advenir_V : V ; - fun advertir_V : V ; - fun aferrar_V : V ; - fun afligir_V : V ; - fun afluir_V : V ; - fun afollar_V : V ; - fun aforar_V : V ; - fun agradecer_V : V ; - fun agredir_V : V ; - fun aguerrir_V : V ; - fun ahincar_V : V ; - fun albeldar_V : V ; - fun alentar_V : V ; - fun aliquebrar_V : V ; - fun almorzar_V : V ; - fun alongar_V : V ; - fun aloquecerse_V : V ; - fun altivecer_V : V ; - fun amanecer_V : V ; - fun amarecer_V : V ; - fun amarillecer_V : V ; - fun amoblar_V : V ; - fun amohecer_V : V ; - fun amolar_V : V ; - fun amorecer_V : V ; - fun amortecer_V : V ; - fun amover_V : V ; - fun andar_V : V ; - fun anochecer_V : V ; - fun antecoger_V : V ; - fun antecoger2_V : V ; - fun antedecir_V : V ; - fun anteponer_V : V ; - fun antevenir_V : V ; - fun antever_V : V ; - fun anzolar_V : V ; - fun apacentar_V : V ; - fun aparecer_V : V ; - fun apercollar_V : V ; - fun apergollar_V : V ; - fun apernar_V : V ; - fun apescoliar_V : V ; - fun apetecer_V : V ; - fun aplacer2_V : V ; - fun aplacer_V : V ; - fun aponer_V : V ; - fun apostar_V : V ; - fun apretar_V : V ; - fun aprevenir_V : V ; - fun aprobar_V : V ; - fun arbolecer_V : V ; - fun arborecer_V : V ; - fun arcaizar_V : V ; - fun argüir_V : V ; - fun aridecer_V : V ; - fun arrecir_V : V ; - fun arrendar_V : V ; - fun arrusticar_V : V ; - fun ascender_V : V ; - fun asentar_V : V ; - fun asentir_V : V ; - fun aserrar_V : V ; - fun asestar_V : V ; - fun asestar2_V : V ; - fun asir_V : V ; - fun asolar_V : V ; - fun asoldar_V : V ; - fun asonar_V : V ; - fun aspaventar_V : V ; - fun asperger_V : V ; - fun asperger2_V : V ; - fun astreñir_V : V ; - fun astriñir_V : V ; - fun astringir_V : V ; - fun atardecer_V : V ; - fun atender_V : V ; - fun aterir_V : V ; - fun aterrar_V : V ; - fun atestar_V : V ; - fun atorar_V : V ; - fun atraer_V : V ; - fun atravesar_V : V ; - fun atribuir_V : V ; - fun atronar_V : V ; - fun avanecerse_V : V ; - fun avenir_V : V ; - fun aventar_V : V ; - fun avergonzar_V : V ; - fun azolar_V : V ; - fun beldar_V : V ; - fun bendecir_V : V ; - fun bienquerer_V : V ; - fun blandir_V : V ; - fun blanquecer_V : V ; - fun bruñir_V : V ; - fun bullir_V : V ; - fun caber_V : V ; - fun caer_V : V ; - fun calecer_V : V ; - fun calentar_V : V ; - fun canecerse_V : V ; - fun carecer_V : V ; - fun cegar_V : V ; - fun ceñir_V : V ; - fun cerner_V : V ; - fun cernir_V : V ; - fun cerrar_V : V ; - fun cimentar_V : V ; - fun circuir_V : V ; - fun circunferir_V : V ; - fun circunscribir_V : V ; - fun circunvolar_V : V ; - fun clarecer_V : V ; - fun clocar_V : V ; - fun coadquirir_V : V ; - fun cocer_V : V ; - fun coercer_V : V ; - fun coextenderse_V : V ; - fun coger_V : V ; - fun coger2_V : V ; - fun cohibir_V : V ; - fun colar_V : V ; - fun colegir_V : V ; - fun colgar_V : V ; - fun colicuecer_V : V ; - fun colorir_V : V ; - fun comedirse_V : V ; - fun comenzar_V : V ; - fun compadecer_V : V ; - fun comparecer_V : V ; - fun competir_V : V ; - fun complacer_V : V ; - fun componer_V : V ; - fun comprobar_V : V ; - fun compungir_V : V ; - fun concebir_V : V ; - fun concernir_V : V ; - fun concernir2_V : V ; - fun concertar_V : V ; - fun concluir_V : V ; - fun concordar_V : V ; - fun condecender_V : V ; - fun condecir_V : V ; - fun condescender_V : V ; - fun condolecerse_V : V ; - fun condolerse_V : V ; - fun conducir_V : V ; - fun conferir_V : V ; - fun confesar_V : V ; - fun confluir_V : V ; - fun conmover_V : V ; - fun conocer_V : V ; - fun conseguir_V : V ; - fun consentir_V : V ; - fun consolar_V : V ; - fun consonar_V : V ; - fun constituir_V : V ; - fun constreñir_V : V ; - fun construir_V : V ; - fun contar_V : V ; - fun contender_V : V ; - fun contener_V : V ; - fun contradecir_V : V ; - fun contraer_V : V ; - fun contrahacer_V : V ; - fun contramanifestar_V : V ; - fun contraponer_V : V ; - fun contravenir_V : V ; - fun contribuir_V : V ; - fun controvertir_V : V ; - fun convalecer_V : V ; - fun convencer_V : V ; - fun convenir_V : V ; - fun converger_V : V ; - fun converger2_V : V ; - fun convergir_V : V ; - fun convertir_V : V ; - fun coproducir_V : V ; - fun corregir_V : V ; - fun corroer_V : V ; - fun costar_V : V ; - fun crecer_V : V ; - fun creer_V : V ; - fun cubrir_V : V ; - fun dar_V : V ; - fun decaer_V : V ; - fun decentar_V : V ; - fun decir_V : V ; - fun decrecer_V : V ; - fun deducir_V : V ; - fun defender_V : V ; - fun deferir_V : V ; - fun degollar_V : V ; - fun delinquir_V : V ; - fun demoler_V : V ; - fun demostrar_V : V ; - fun denegar_V : V ; - fun denegrir_V : V ; - fun denostar_V : V ; - fun dentar_V : V ; - fun deponer_V : V ; - fun derrelinquir_V : V ; - fun derrenegar_V : V ; - fun derrengar_V : V ; - fun derretir_V : V ; - fun derruir_V : V ; - fun desabastecer_V : V ; - fun desacertar_V : V ; - fun desacollar_V : V ; - fun desacordar_V : V ; - fun desadormecer_V : V ; - fun desadvertir_V : V ; - fun desaferrar_V : V ; - fun desaforar_V : V ; - fun desagradecer_V : V ; - fun desalentar_V : V ; - fun desamoblar_V : V ; - fun desandar_V : V ; - fun desaparecer_V : V ; - fun desapretar_V : V ; - fun desaprobar_V : V ; - fun desarrendar_V : V ; - fun desasentar_V : V ; - fun desasir_V : V ; - fun desasosegar_V : V ; - fun desatender_V : V ; - fun desatentar_V : V ; - fun desaterrar_V : V ; - fun desavenir_V : V ; - fun desbravecer_V : V ; - fun descabullirse_V : V ; - fun descaecer_V : V ; - fun descaer_V : V ; - fun desceñir_V : V ; - fun descender_V : V ; - fun descerrar_V : V ; - fun descimentar_V : V ; - fun descocer_V : V ; - fun descoger_V : V ; - fun descoger2_V : V ; - fun descolgar_V : V ; - fun descollar_V : V ; - fun descolorir_V : V ; - fun descomedirse_V : V ; - fun descomponer_V : V ; - fun desconcertar_V : V ; - fun desconocer_V : V ; - fun desconsentir_V : V ; - fun desconsolar_V : V ; - fun descontar_V : V ; - fun desconvenir_V : V ; - fun descordar_V : V ; - fun descornar_V : V ; - fun descreer_V : V ; - fun describir_V : V ; - fun descubrir_V : V ; - fun desdecir_V : V ; - fun desdentar_V : V ; - fun desembebecerse_V : V ; - fun desembravecer_V : V ; - fun desempedrar_V : V ; - fun desencerrar_V : V ; - fun desencoger_V : V ; - fun desencoger2_V : V ; - fun desencordar_V : V ; - fun desencovar_V : V ; - fun desenfurecer_V : V ; - fun desengrosar_V : V ; - fun desenmohecer_V : V ; - fun desenmudecer_V : V ; - fun desenrudecer_V : V ; - fun desensoberbecer_V : V ; - fun desentenderse_V : V ; - fun desenterrar_V : V ; - fun desentorpecer_V : V ; - fun desentumecer_V : V ; - fun desenvolver_V : V ; - fun deservir_V : V ; - fun desfallecer_V : V ; - fun desfavorecer_V : V ; - fun desflorecer_V : V ; - fun desfortalecer_V : V ; - fun desfruncir_V : V ; - fun desgobernar_V : V ; - fun desguarnecer_V : V ; - fun deshacer_V : V ; - fun deshelar_V : V ; - fun desherbar_V : V ; - fun desherrar_V : V ; - fun deshumedecer_V : V ; - fun desimponer_V : V ; - fun desinvernar_V : V ; - fun deslendrar_V : V ; - fun desleír_V : V ; - fun deslucir_V : V ; - fun desmajolar_V : V ; - fun desmedirse_V : V ; - fun desmelar_V : V ; - fun desmembrar_V : V ; - fun desmentir_V : V ; - fun desmerecer_V : V ; - fun desmullir_V : V ; - fun desobedecer_V : V ; - fun desobstruir_V : V ; - fun desolar_V : V ; - fun desoldar_V : V ; - fun desollar_V : V ; - fun desoír_V : V ; - fun desosar_V : V ; - fun desosegar_V : V ; - fun desparecer_V : V ; - fun despedir_V : V ; - fun despedrar_V : V ; - fun desperecerse_V : V ; - fun despernar_V : V ; - fun despertar_V : V ; - fun despezar_V : V ; - fun desplacer_V : V ; - fun desplegar_V : V ; - fun despoblar_V : V ; - fun desposeer_V : V ; - fun desproveer_V : V ; - fun desquerer_V : V ; - fun desraizar_V : V ; - fun desteñir_V : V ; - fun destentar_V : V ; - fun desterrar_V : V ; - fun destituir_V : V ; - fun destorcer_V : V ; - fun destruir_V : V ; - fun desuncir_V : V ; - fun desvanecer_V : V ; - fun desventar_V : V ; - fun desvestir_V : V ; - fun desvolver_V : V ; - fun detener_V : V ; - fun deterger_V : V ; - fun deterger2_V : V ; - fun detraer_V : V ; - fun devenir_V : V ; - fun devolver_V : V ; - fun dezmar_V : V ; - fun diferir_V : V ; - fun difluir_V : V ; - fun digerir_V : V ; - fun diluir_V : V ; - fun diminuir_V : V ; - fun dirigir_V : V ; - fun discernir_V : V ; - fun discontar_V : V ; - fun disconvenir_V : V ; - fun discordar_V : V ; - fun disentir_V : V ; - fun disminuir_V : V ; - fun disolver_V : V ; - fun disonar_V : V ; - fun displacer_V : V ; - fun disponer_V : V ; - fun distender_V : V ; - fun distinguir_V : V ; - fun distraer_V : V ; - fun distribuir_V : V ; - fun divergir_V : V ; - fun divertir_V : V ; - fun dolar_V : V ; - fun doler_V : V ; - fun dormir_V : V ; - fun eflorecerse_V : V ; - fun efluir_V : V ; - fun ejercer_V : V ; - fun elegir_V : V ; - fun embarbecer_V : V ; - fun embastecer_V : V ; - fun embebecer_V : V ; - fun embellaquecerse_V : V ; - fun embellecer_V : V ; - fun embermejecer_V : V ; - fun embestir_V : V ; - fun emblandecer_V : V ; - fun emblanquecer_V : V ; - fun embobecer_V : V ; - fun embosquecer_V : V ; - fun embravecer_V : V ; - fun embrutecer_V : V ; - fun emerger_V : V ; - fun emerger2_V : V ; - fun empajolar_V : V ; - fun empalidecer_V : V ; - fun emparentar_V : V ; - fun empavorecer_V : V ; - fun empecer_V : V ; - fun empedernir_V : V ; - fun empedrar_V : V ; - fun empeller_V : V ; - fun empequehecer_V : V ; - fun empezar_V : V ; - fun emplastecer_V : V ; - fun emplebeyecer_V : V ; - fun emplumecer_V : V ; - fun empobrecer_V : V ; - fun empodrecer_V : V ; - fun empoltronecerse_V : V ; - fun emporcar_V : V ; - fun empretecer_V : V ; - fun emputecer_V : V ; - fun enaltecer_V : V ; - fun enamarillecer_V : V ; - fun enardecer_V : V ; - fun encabellecerse_V : V ; - fun encallecer_V : V ; - fun encalvecer_V : V ; - fun encandecer_V : V ; - fun encanecer_V : V ; - fun encarecer_V : V ; - fun encarnecer_V : V ; - fun enceguecer_V : V ; - fun encender_V : V ; - fun encentar_V : V ; - fun encerrar_V : V ; - fun enclocar_V : V ; - fun encloquecer_V : V ; - fun encoger_V : V ; - fun encoger2_V : V ; - fun encomendar_V : V ; - fun encontrar_V : V ; - fun encorar_V : V ; - fun encordar_V : V ; - fun encorecer_V : V ; - fun encovar_V : V ; - fun encrudecer_V : V ; - fun encruelecer_V : V ; - fun encubertar_V : V ; - fun encubrir_V : V ; - fun endentar_V : V ; - fun endentecer_V : V ; - fun endurecer_V : V ; - fun enflaquecer_V : V ; - fun enflorecer_V : V ; - fun enfranquecer_V : V ; - fun enfurecer_V : V ; - fun engorar_V : V ; - fun engrandecer_V : V ; - fun engravecer_V : V ; - fun engreír_V : V ; - fun engrosar_V : V ; - fun engrumecerse_V : V ; - fun engullir_V : V ; - fun enhestar_V : V ; - fun enlenzar_V : V ; - fun enllentecer_V : V ; - fun enlobreguecer_V : V ; - fun enloquecer_V : V ; - fun enlucir_V : V ; - fun enlustrecer_V : V ; - fun enmagrecer_V : V ; - fun enmalecer_V : V ; - fun enmarillecerse_V : V ; - fun enmelar_V : V ; - fun enmendar_V : V ; - fun enmohecer_V : V ; - fun enmollecer_V : V ; - fun enmudecer_V : V ; - fun ennegrecer_V : V ; - fun ennoblecer_V : V ; - fun ennudecer_V : V ; - fun enorgullecer_V : V ; - fun enraizar_V : V ; - fun enralecer_V : V ; - fun enrarecer_V : V ; - fun enrigidecer_V : V ; - fun enriquecer_V : V ; - fun enrocar_V : V ; - fun enrodar_V : V ; - fun enrojecer_V : V ; - fun enronquecer_V : V ; - fun enrudecer_V : V ; - fun enruinecer_V : V ; - fun ensandecer_V : V ; - fun ensangrentar_V : V ; - fun ensarmentar_V : V ; - fun ensarnecer_V : V ; - fun ensilvecerse_V : V ; - fun ensoñar_V : V ; - fun ensoberbecer_V : V ; - fun ensolver_V : V ; - fun ensombrecer_V : V ; - fun ensordecer_V : V ; - fun entallecer_V : V ; - fun entender_V : V ; - fun entenebrecer_V : V ; - fun enternecer_V : V ; - fun enterrar_V : V ; - fun entesar_V : V ; - fun entestecer_V : V ; - fun entigrecerse_V : V ; - fun entontecer_V : V ; - fun entorpecer_V : V ; - fun entortar_V : V ; - fun entreabrir_V : V ; - fun entrecerrar_V : V ; - fun entrecoger_V : V ; - fun entrecoger2_V : V ; - fun entredecir_V : V ; - fun entrelucir_V : V ; - fun entreoír_V : V ; - fun entreparecerse_V : V ; - fun entrepernar_V : V ; - fun entretener_V : V ; - fun entrever_V : V ; - fun entristecer_V : V ; - fun entullecer_V : V ; - fun entumecer_V : V ; - fun envaguecer_V : V ; - fun envanecer_V : V ; - fun envejecer_V : V ; - fun enverdecer_V : V ; - fun envestir_V : V ; - fun envolver_V : V ; - fun enzurdecer_V : V ; - fun equivaler_V : V ; - fun erguir_V : V ; - fun erigir_V : V ; - fun errar_V : V ; - fun escabullirse_V : V ; - fun escaecer_V : V ; - fun escalfecerse_V : V ; - fun escarmentar_V : V ; - fun escarnecer_V : V ; - fun esclarecer_V : V ; - fun escocer_V : V ; - fun escoger_V : V ; - fun escoger2_V : V ; - fun escolar_V : V ; - fun escribir_V : V ; - fun esforzar_V : V ; - fun esmorecer_V : V ; - fun esmuir_V : V ; - fun establecer_V : V ; - fun estarcir_V : V ; - fun estar_V : V ; - fun estatuir_V : V ; - fun estregar_V : V ; - fun estreñir_V : V ; - fun estremecer_V : V ; - fun europeizar_V : V ; - fun evanecer_V : V ; - fun evanescer_V : V ; - fun excandecer_V : V ; - fun excluir_V : V ; - fun exigir_V : V ; - fun expedir_V : V ; - fun exponer_V : V ; - fun extender_V : V ; - fun extinguir_V : V ; - fun extraer_V : V ; - fun fallecer_V : V ; - fun fallir_V : V ; - fun favorecer_V : V ; - fun fenecer_V : V ; - fun ferrar_V : V ; - fun fingir_V : V ; - fun florecer_V : V ; - fun fluir_V : V ; - fun follar_V : V ; - fun fortalecer_V : V ; - fun forzar_V : V ; - fun fosforecer_V : V ; - fun fosforescer_V : V ; - fun fotocomponer_V : V ; - fun frangir_V : V ; - fun fregar_V : V ; - fun freír_V : V ; - fun fruir_V : V ; - fun fruncir_V : V ; - fun frutecer_V : V ; - fun fulgir_V : V ; - fun fungir_V : V ; - fun gañir_V : V ; - fun garantir_V : V ; - fun gemir_V : V ; - fun gernir_V : V ; - fun gobernar_V : V ; - fun grandisonar_V : V ; - fun gruñir_V : V ; - fun gruir_V : V ; - fun guañir_V : V ; - fun guarecer_V : V ; - fun guarnecer_V : V ; - fun haber_V : V ; - fun hacendar_V : V ; - fun hacer_V : V ; - fun hebraizar_V : V ; - fun heder_V : V ; - fun heñir_V : V ; - fun helar_V : V ; - fun henchir_V : V ; - fun hender_V : V ; - fun hendir_V : V ; - fun herbar_V : V ; - fun herbecer_V : V ; - fun herir_V : V ; - fun hermanecer_V : V ; - fun herrar_V : V ; - fun herventar_V : V ; - fun hervir_V : V ; - fun holgar_V : V ; - fun holiar_V : V ; - fun huir_V : V ; - fun humedecer_V : V ; - fun imbuir_V : V ; - fun impedir_V : V ; - fun imponer_V : V ; - fun imprimir_V : V ; - fun improbar_V : V ; - fun incensar_V : V ; - fun incluir_V : V ; - fun indisponer_V : V ; - fun inducir_V : V ; - fun inferir_V : V ; - fun infernar_V : V ; - fun infligir_V : V ; - fun influir_V : V ; - fun infringir_V : V ; - fun ingerir_V : V ; - fun injerir_V : V ; - fun inmergir_V : V ; - fun inmiscuir_V : V ; - fun inquirir_V : V ; - fun inscribir_V : V ; - fun inserir_V : V ; - fun instituir_V : V ; - fun instruir_V : V ; - fun interferir_V : V ; - fun interponer_V : V ; - fun intervenir_V : V ; - fun introducir_V : V ; - fun intuir_V : V ; - fun invernar_V : V ; - fun invertir_V : V ; - fun investir_V : V ; - fun irruir_V : V ; - fun ir_V : V ; - fun jamerdar_V : V ; - fun jimenzar_V : V ; - fun judaizar_V : V ; - fun jugar_V : V ; - fun juñir_V : V ; - fun languidecer_V : V ; - fun leer_V : V ; - fun licuefacer_V : V ; - fun lividecer_V : V ; - fun llover_V : V ; - fun lobreguecer_V : V ; - fun lucir_V : V ; - fun luir_V : V ; - fun malentender_V : V ; - fun malherir_V : V ; - fun malquerer_V : V ; - fun maltraer_V : V ; - fun mancornar_V : V ; - fun manifestar_V : V ; - fun manir_V : V ; - fun mantener_V : V ; - fun manuscribir_V : V ; - fun manutener_V : V ; - fun mecer_V : V ; - fun medir_V : V ; - fun melar_V : V ; - fun mentar_V : V ; - fun mentir_V : V ; - fun merecer_V : V ; - fun merendar_V : V ; - fun moblar_V : V ; - fun mohecer_V : V ; - fun moler_V : V ; - fun morder_V : V ; - fun morir_V : V ; - fun mostrar_V : V ; - fun mover_V : V ; - fun mugir_V : V ; - fun muñir_V : V ; - fun mullir_V : V ; - fun nacer_V : V ; - fun negar_V : V ; - fun negrecer_V : V ; - fun nevar_V : V ; - fun obedecer_V : V ; - fun obscurecer_V : V ; - fun obstruir_V : V ; - fun obtener_V : V ; - fun ocluir_V : V ; - fun ofrecer_V : V ; - fun oler_V : V ; - fun oponer_V : V ; - fun oír_V : V ; - fun oscurecer_V : V ; - fun pacer_V : V ; - fun padecer_V : V ; - fun palidecer_V : V ; - fun parecer_V : V ; - fun patiquebrar_V : V ; - fun pedir_V : V ; - fun pensar_V : V ; - fun percollar_V : V ; - fun perder_V : V ; - fun perecer_V : V ; - fun permanecer_V : V ; - fun perniquebrar_V : V ; - fun perquirir_V : V ; - fun perseguir_V : V ; - fun pertenecer_V : V ; - fun pervertir_V : V ; - fun pimpollecer_V : V ; - fun placer_V : V ; - fun plañir_V : V ; - fun plastecer_V : V ; - fun plegar_V : V ; - fun poblar_V : V ; - fun poder_V : V ; - fun poner_V : V ; - fun poseer_V : V ; - fun posponer_V : V ; - fun preconcebir_V : V ; - fun preconocer_V : V ; - fun predecir_V : V ; - fun predisponer_V : V ; - fun preelegir_V : V ; - fun preestablecer_V : V ; - fun preferir_V : V ; - fun prelucir_V : V ; - fun premorir_V : V ; - fun premostrar_V : V ; - fun prender_V : V ; - fun preponer_V : V ; - fun prescribir_V : V ; - fun presentir_V : V ; - fun presuponer_V : V ; - fun preterir_V : V ; - fun prevalecer_V : V ; - fun prevaler_V : V ; - fun prevenir_V : V ; - fun prever_V : V ; - fun probar_V : V ; - fun producir_V : V ; - fun proferir_V : V ; - fun prohibir_V : V ; - fun promover_V : V ; - fun proponer_V : V ; - fun proscribir_V : V ; - fun proseguir_V : V ; - fun prostituir_V : V ; - fun proteger_V : V ; - fun proteger2_V : V ; - fun proveer_V : V ; - fun provenir_V : V ; - fun pudrir_V : V ; - fun pungir_V : V ; - fun quebrar_V : V ; - fun querer_V : V ; - fun radiodirigir_V : V ; - fun raer_V : V ; - fun rarefacer_V : V ; - fun reabrir_V : V ; - fun reaparecer_V : V ; - fun reapretar_V : V ; - fun reargüir_V : V ; - fun reaventar_V : V ; - fun reblandecer_V : V ; - fun rebullir_V : V ; - fun recaer_V : V ; - fun recalentar_V : V ; - fun receñir_V : V ; - fun recentar_V : V ; - fun recluir_V : V ; - fun recocer_V : V ; - fun recoger_V : V ; - fun recoger2_V : V ; - fun recolar_V : V ; - fun recolegir_V : V ; - fun recomendar_V : V ; - fun recomenzar_V : V ; - fun recomponer_V : V ; - fun reconducir_V : V ; - fun reconocer_V : V ; - fun reconstituir_V : V ; - fun reconstruir_V : V ; - fun recontar_V : V ; - fun reconvalecer_V : V ; - fun reconvenir_V : V ; - fun reconvertir_V : V ; - fun recordar_V : V ; - fun recostar_V : V ; - fun recrecer_V : V ; - fun recrudecer_V : V ; - fun redargüir_V : V ; - fun redecir_V : V ; - fun redescontar_V : V ; - fun redistribuir_V : V ; - fun reducir_V : V ; - fun reelegir_V : V ; - fun reencontrar_V : V ; - fun reexpedir_V : V ; - fun referir_V : V ; - fun reflorecer_V : V ; - fun refluir_V : V ; - fun reforzar_V : V ; - fun refregar_V : V ; - fun refreír_V : V ; - fun refringir_V : V ; - fun refulgir_V : V ; - fun regañir_V : V ; - fun regar_V : V ; - fun regimentar_V : V ; - fun regir_V : V ; - fun regoldar_V : V ; - fun regruñir_V : V ; - fun reguarnecer_V : V ; - fun rehacer_V : V ; - fun rehenchir_V : V ; - fun reherir_V : V ; - fun reherrar_V : V ; - fun rehervir_V : V ; - fun rehollar_V : V ; - fun rehuir_V : V ; - fun rehumedecer_V : V ; - fun reinscribir_V : V ; - fun reñir_V : V ; - fun rejuvenecer_V : V ; - fun releer_V : V ; - fun relentecer_V : V ; - fun relucir_V : V ; - fun remanecer_V : V ; - fun remecer_V : V ; - fun remedir_V : V ; - fun remembrar_V : V ; - fun remendar_V : V ; - fun remolar_V : V ; - fun remoler_V : V ; - fun remostecerse_V : V ; - fun remover_V : V ; - fun remullir_V : V ; - fun renacer_V : V ; - fun rencontrar_V : V ; - fun rendir_V : V ; - fun renegar_V : V ; - fun renovar_V : V ; - fun repacer_V : V ; - fun repensar_V : V ; - fun repetir_V : V ; - fun replegar_V : V ; - fun repoblar_V : V ; - fun reponer_V : V ; - fun reprobar_V : V ; - fun reproducir_V : V ; - fun requebrar_V : V ; - fun requerir_V : V ; - fun rernorder_V : V ; - fun reír_V : V ; - fun resaber_V : V ; - fun resalir_V : V ; - fun resarcir_V : V ; - fun rescontrar_V : V ; - fun rescribir_V : V ; - fun resegar_V : V ; - fun reseguir_V : V ; - fun resolgar_V : V ; - fun resollar_V : V ; - fun resolver_V : V ; - fun resonar_V : V ; - fun resplandecer_V : V ; - fun resquebrar_V : V ; - fun restablecer_V : V ; - fun restituir_V : V ; - fun restregar_V : V ; - fun restriñir_V : V ; - fun restringir_V : V ; - fun resurgir_V : V ; - fun retallecer_V : V ; - fun reteñir_V : V ; - fun retemblar_V : V ; - fun retener_V : V ; - fun retentar_V : V ; - fun retiñir_V : V ; - fun retoñecer_V : V ; - fun retorcer_V : V ; - fun retostar_V : V ; - fun retraducir_V : V ; - fun retraer_V : V ; - fun retribuir_V : V ; - fun retronar_V : V ; - fun retrotraer_V : V ; - fun reunir_V : V ; - fun revejecer_V : V ; - fun revenir_V : V ; - fun reventar_V : V ; - fun reverdecer_V : V ; - fun reverter_V : V ; - fun revertir_V : V ; - fun rever_V : V ; - fun revestir_V : V ; - fun revolar_V : V ; - fun revolcar_V : V ; - fun revolver_V : V ; - fun rezurcir_V : V ; - fun robustecer_V : V ; - fun rodar_V : V ; - fun roer_V : V ; - fun rogar_V : V ; - fun romper_V : V ; - fun rugir_V : V ; - fun rusentar_V : V ; - fun saber_V : V ; - fun salir_V : V ; - fun salpimentar_V : V ; - fun salpullir_V : V ; - fun sarmentar_V : V ; - fun sarpullir_V : V ; - fun satisfacer_V : V ; - fun seducir_V : V ; - fun segar_V : V ; - fun seguir_V : V ; - fun sembrar_V : V ; - fun sementar_V : V ; - fun sentar_V : V ; - fun sentir_V : V ; - fun serrar_V : V ; - fun servir_V : V ; - fun ser_V : V ; - fun soñar_V : V ; - fun sobrecalentar_V : V ; - fun sobrecoger_V : V ; - fun sobrecoger2_V : V ; - fun sobrecrecer_V : V ; - fun sobreentender_V : V ; - fun sobreexponer_V : V ; - fun sobrentender_V : V ; - fun sobreponer_V : V ; - fun sobresalir_V : V ; - fun sobrescribir_V : V ; - fun sobreseer_V : V ; - fun sobresembrar_V : V ; - fun sobresolar_V : V ; - fun sobrevenir_V : V ; - fun sobreverterse_V : V ; - fun sobrevestir_V : V ; - fun sobrevolar_V : V ; - fun socolar_V : V ; - fun sofreír_V : V ; - fun solar_V : V ; - fun soldar_V : V ; - fun soler_V : V ; - fun soltar_V : V ; - fun sonar_V : V ; - fun sonreír_V : V ; - fun sorregar_V : V ; - fun sosegar_V : V ; - fun sostener_V : V ; - fun soterrar_V : V ; - fun subarrendar_V : V ; - fun subdistinguir_V : V ; - fun subentender_V : V ; - fun subexponer_V : V ; - fun subscribir_V : V ; - fun subseguir_V : V ; - fun subsolar_V : V ; - fun substituir_V : V ; - fun substraer_V : V ; - fun subtender_V : V ; - fun subvenir_V : V ; - fun subvertir_V : V ; - fun subyacer_V : V ; - fun sugerir_V : V ; - fun sumergir_V : V ; - fun superentender_V : V ; - fun superponer_V : V ; - fun supervenir_V : V ; - fun suponer_V : V ; - fun surgir_V : V ; - fun suscribir_V : V ; - fun sustituir_V : V ; - fun sustraer_V : V ; - fun tañer_V : V ; - fun tallecer_V : V ; - fun tardecer_V : V ; - fun teñir_V : V ; - fun telecomponer_V : V ; - fun teledirigir_V : V ; - fun temblar_V : V ; - fun tender_V : V ; - fun tener_V : V ; - fun tentar_V : V ; - fun tonar_V : V ; - fun torcer_V : V ; - fun tostar_V : V ; - fun traducir_V : V ; - fun traer_V : V ; - fun transcender_V : V ; - fun transcribir_V : V ; - fun transferir_V : V ; - fun transgredir_V : V ; - fun transigir_V : V ; - fun translucirse_V : V ; - fun transponer_V : V ; - fun trascender_V : V ; - fun trascolar_V : V ; - fun trascribir_V : V ; - fun trasegar_V : V ; - fun trasferir_V : V ; - fun trasfregar_V : V ; - fun trasgredir_V : V ; - fun traslucir_V : V ; - fun trasoñar_V : V ; - fun trasoír_V : V ; - fun trasparecer_V : V ; - fun trasponer_V : V ; - fun trastrocar_V : V ; - fun trasverter_V : V ; - fun trasver_V : V ; - fun travestir_V : V ; - fun trocar_V : V ; - fun tronar_V : V ; - fun tropezar_V : V ; - fun tullecer_V : V ; - fun tullir_V : V ; - fun tumefacer_V : V ; - fun uncir_V : V ; - fun ungir_V : V ; - fun unisonar_V : V ; - fun urgir_V : V ; - fun usucapir_V : V ; - fun valer_V : V ; - fun vencer_V : V ; - fun venir_V : V ; - fun ventar_V : V ; - fun verdecer_V : V ; - fun verter_V : V ; - fun ver_V : V ; - fun vestir_V : V ; - fun volar_V : V ; - fun volcar_V : V ; - fun volver_V : V ; - fun yacer_V : V ; - fun yuxtaponer_V : V ; - fun zabullir_V : V ; - fun zaherir_V : V ; - fun zambullir_V : V ; - fun zurcir_V : V ; - - -} From cbc2fc8758682ccb931b76a56a03c186987765b6 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 16 May 2018 09:56:13 -0300 Subject: [PATCH 05/11] (Abs) rm reference to Extra in Structural -- use Extend instead --- src/abstract/Structural.gf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/abstract/Structural.gf b/src/abstract/Structural.gf index 2a54bbd70..8d5e3d6e3 100644 --- a/src/abstract/Structural.gf +++ b/src/abstract/Structural.gf @@ -1,10 +1,10 @@ --1 Structural: Structural Words --- +-- -- Here we have some words belonging to closed classes and appearing -- in all languages we have considered. -- Sometimes more distinctions are needed, e.g. $we_Pron$ in Spanish -- should be replaced by masculine and feminine variants, found in --- [``ExtraSpa`` ../spanish/ExtraSpa.gf]. +-- [``ExtendSpa`` ../spanish/ExtendSpa.gf]. abstract Structural = Cat ** { @@ -12,11 +12,11 @@ abstract Structural = Cat ** { -- This is an alphabetical list of structural words - above_Prep : Prep ; + above_Prep : Prep ; after_Prep : Prep ; all_Predet : Predet ; - almost_AdA : AdA ; - almost_AdN : AdN ; + almost_AdA : AdA ; + almost_AdN : AdN ; although_Subj : Subj ; always_AdV : AdV ; and_Conj : Conj ; @@ -84,7 +84,7 @@ abstract Structural = Cat ** { there7to_Adv : Adv ; -- to there there7from_Adv : Adv ; -- from there therefore_PConj : PConj ; - they_Pron : Pron ; + they_Pron : Pron ; this_Quant : Quant ; through_Prep : Prep ; to_Prep : Prep ; @@ -110,7 +110,7 @@ abstract Structural = Cat ** { youPl_Pron : Pron ; -- you (plural) youPol_Pron : Pron ; -- you (polite) - no_Quant : Quant ; + no_Quant : Quant ; not_Predet : Predet ; if_then_Conj : Conj ; at_least_AdN : AdN ; From 8ba3bbe82f5d1d65a12e707b975b3c7c0d4d51d3 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 16 May 2018 10:38:54 -0300 Subject: [PATCH 06/11] (Por) ExtendPor - use Extend instead of Extra in All - use Extend funs in Extra whenever possible --- src/portuguese/AllPor.gf | 4 +-- src/portuguese/AllPorAbs.gf | 4 +-- src/portuguese/ExtendPor.gf | 68 +++++++++++++++++++++++++++++++++++ src/portuguese/ExtraPor.gf | 38 +++++++------------- src/portuguese/ExtraPorAbs.gf | 10 +++--- 5 files changed, 90 insertions(+), 34 deletions(-) create mode 100644 src/portuguese/ExtendPor.gf diff --git a/src/portuguese/AllPor.gf b/src/portuguese/AllPor.gf index 67b192158..aa8048e2d 100644 --- a/src/portuguese/AllPor.gf +++ b/src/portuguese/AllPor.gf @@ -1,7 +1,7 @@ --# -path=.:../romance:../abstract:../common:../api:../prelude -concrete AllPor of AllPorAbs = +concrete AllPor of AllPorAbs = LangPor, IrregPor, - ExtraPor + ExtendPor ** {} ; diff --git a/src/portuguese/AllPorAbs.gf b/src/portuguese/AllPorAbs.gf index 057c97a11..5fef5fca1 100644 --- a/src/portuguese/AllPorAbs.gf +++ b/src/portuguese/AllPorAbs.gf @@ -1,5 +1,5 @@ -abstract AllPorAbs = +abstract AllPorAbs = Lang, IrregPorAbs, - ExtraPorAbs + Extend ** {} ; diff --git a/src/portuguese/ExtendPor.gf b/src/portuguese/ExtendPor.gf new file mode 100644 index 000000000..c432ab3e9 --- /dev/null +++ b/src/portuguese/ExtendPor.gf @@ -0,0 +1,68 @@ +--# -path=alltenses:../common:../abstract + +concrete ExtendPor of Extend = + CatPor ** ExtendFunctor - + [ + iFem_Pron, weFem_Pron, youFem_Pron, youPlFem_Pron, youPolPl_Pron, youPolFem_Pron, youPolPlFem_Pron, theyFem_Pron, + ProDrop, + PassVPSlash, ExistsNP + ] -- put the names of your own definitions here + with + (Grammar = GrammarPor), (Syntax = SyntaxPor) ** + open + GrammarPor, + ResPor, + MorphoPor, + Coordination, + Prelude, + ParadigmsPor, + (S = StructuralPor) in { + + lin + ProDrop p = { + s = table { + Nom => let pn = p.s ! Nom in {c1 = pn.c1 ; c2 = pn.c2 ; comp = [] ; ton = pn.ton} ; + c => p.s ! c + } ; + a = p.a ; + poss = p.poss ; + hasClit = p.hasClit ; + isPol = p.isPol ; + isNeg = False + } ; + + lin + PassVPSlash vps = + let auxvp = predV copula + in + insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) { + s = auxvp.s ; + agr = auxvp.agr ; + neg = vps.neg ; + clit1 = vps.clit1 ; + clit2 = vps.clit2 ; + clit3 = vps.clit3 ; + isNeg = vps.isNeg ; + comp = vps.comp ; + ext = vps.ext + } ; + + ExistsNP np = + mkClause [] True False np.a + (insertComplement (\\_ => (np.s ! Nom).ton) + (predV (mkV "existir"))) ; + + lin + -- Romance + iFem_Pron = pronAgr S.i_Pron Fem Sg P1 ; + weFem_Pron = pronAgr S.we_Pron Fem Pl P1 ; + youFem_Pron = pronAgr S.youSg_Pron Fem Sg P3 ; + youPlFem_Pron = pronAgr S.youPl_Pron Fem Pl P3 ; + youPolPl_Pron = mkPronoun "vós" "vos" "vos" "vós" + "vosso" "vossa" "vossos" "vossas" + Masc Pl P2 ; + youPolFem_Pron = pronAgr S.youPol_Pron Fem Sg P2 ; + youPolPlFem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ; + theyFem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ; + +} ; diff --git a/src/portuguese/ExtraPor.gf b/src/portuguese/ExtraPor.gf index 6c8e181c5..1b81445ac 100644 --- a/src/portuguese/ExtraPor.gf +++ b/src/portuguese/ExtraPor.gf @@ -1,18 +1,20 @@ +-- the Extra* modules are to be deprecated in favour of the Extend* +-- module. concrete ExtraPor of ExtraPorAbs = ExtraRomancePor ** - open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor), (S = StructuralPor), + open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor), (E = ExtendPor), Prelude in { flags coding=utf8 ; lin --- Prons - i8fem_Pron = pronAgr S.i_Pron Fem Sg P1 ; - 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.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 ; + i8fem_Pron = E.iFem_Pron ; + youSg8fem_Pron = E.youFem_Pron ; + we8fem_Pron = E.weFem_Pron ; + youPl8fem_Pron = E.youPlFem_Pron ; + youPolPl_Pron = E.youPolPl_Pron ; + youPol8fem_Pron = E.youPolFem_Pron ; + youPolPl8fem_Pron = E.youPolPlFem_Pron ; + they8fem_Pron = E.theyFem_Pron ; these8fem_NP = makeNP ["estas"] Fem Pl ; @@ -37,23 +39,9 @@ concrete ExtraPor of ExtraPorAbs = ExtraRomancePor ** } ; -- ExtraRomance.PassVPSlash uses estar - PassVPSlash_ser vps = - let auxvp = predV copula - in - insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) { - s = auxvp.s ; - agr = auxvp.agr ; - neg = vps.neg ; - clit1 = vps.clit1 ; - clit2 = vps.clit2 ; - clit3 = vps.clit3 ; - isNeg = vps.isNeg ; - comp = vps.comp ; - ext = vps.ext - } ; + PassVPSlash_ser = E.PassVPSlash ; - ExistsNP np = - mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ; + ExistsNP = E.ExistsNP ; UseComp_estar comp = insertComplement comp.s (predV I.estar_V) ; diff --git a/src/portuguese/ExtraPorAbs.gf b/src/portuguese/ExtraPorAbs.gf index 4355aa89a..5a709c5f1 100644 --- a/src/portuguese/ExtraPorAbs.gf +++ b/src/portuguese/ExtraPorAbs.gf @@ -14,19 +14,19 @@ abstract ExtraPorAbs = ExtraRomanceAbs ** { this8fem_NP : NP ; those8fem_NP : NP ; - we8fem_Pron : Pron ; -- nosotras + we8fem_Pron : Pron ; whoPl8fem_IP : IP ; whoSg8fem_IP : IP ; youSg8fem_Pron : Pron ; - youPl8fem_Pron : Pron ; -- vosotras - youPol8fem_Pron : Pron ; -- usted + youPl8fem_Pron : Pron ; + youPol8fem_Pron : Pron ; - youPolPl_Pron : Pron ; -- ustedes + youPolPl_Pron : Pron ; youPolPl8fem_Pron : Pron ; - ImpNeg : NP -> VP -> Utt ; --"no fumes" + ImpNeg : NP -> VP -> Utt ; --"não fume" InvQuestCl : Cl -> QCl ; From 23c5ce2381574133af95ec62683a269cec1a8c01 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 16 May 2018 19:51:41 -0300 Subject: [PATCH 07/11] (Por) Diff - sort opers - rm old commented code - tidy things up - no semantic changes --- src/portuguese/DiffPor.gf | 232 ++++++++++++++++++++------------------ 1 file changed, 123 insertions(+), 109 deletions(-) diff --git a/src/portuguese/DiffPor.gf b/src/portuguese/DiffPor.gf index c7d732064..28bc0b11f 100644 --- a/src/portuguese/DiffPor.gf +++ b/src/portuguese/DiffPor.gf @@ -5,22 +5,91 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo flags optimize=noexpand ; coding=utf8 ; ----- exceptions ---------------- - oper - partAgr : VType -> Bool = \vtyp -> False ; - vpAgrSubj : Verb -> VPAgrType = \v -> ; - vpAgrClits : Verb -> AAgr -> VPAgrType = \v,a -> ; - --------------------------------- - param Prepos = P_de | P_a ; + VType = VHabere | VRefl ; + oper + partAgr : VType -> Bool ; + -- exception + partAgr _ = False ; + + vpAgrSubj : Verb -> VPAgrType ; + -- exception + vpAgrSubj v = ; + + oper + conjunctCase : Case -> Case = \c -> case c of { + Nom => Nom ; + _ => Acc + } ; + + oper + clitInf b cli inf = inf ++ bindIf b ++ cli ; + + oper + pronArg = \n,p,acc,dat -> + let + paccp = case acc of { + CRefl => ; + CPron ag an ap => ; + _ => <[],P2,False> + } ; + pdatp = case dat of { + CPron ag an ap => ; + _ => <[],P2,False> + } ; + peither = case acc of { + CRefl | CPron _ _ _ => True ; + _ => case dat of { + CPron _ _ _ => True ; + _ => False + } + } ; + defaultPronArg = + in + ---- 8/6/2008 efficiency problem in pgf generation: replace the case + ---- expr with a constant produces an error in V3 predication with + ---- two pronouns + defaultPronArg ; + + oper + mkImperative b p vp = + \\pol,g,n => + let + pe = case b of {True => P3 ; _ => p} ; + agr = {g = g ; n = n ; p = pe} ; + refl = case vp.s.vtyp of { + VRefl => ; + _ => <[],False> + } ; + + clpr = ; + verb = vp.s.s ! vImper n pe ; + neg = vp.neg ! pol ; + compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol + in + neg.p1 ++ verb ++ bindIf refl.p2 ++ refl.p1 ++ bindIf clpr.p3 ++ clpr.p1 ++ compl ; + + oper + CopulaType = Bool ; + selectCopula = \isEstar -> case isEstar of {True => estar_V ; False => copula} ; + serCopula = False ; + estarCopula = True ; + oper dative : Case = CPrep P_a ; genitive : Case = CPrep P_de ; + oper + vRefl _ = VRefl ; + isVRefl : VType -> Bool = \ty -> case ty of { + VRefl => True ; + _ => False + } ; + + oper prepCase = \c -> case c of { Nom => [] ; Acc => [] ; @@ -28,6 +97,10 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo CPrep P_a => "a" } ; + oper + partitive = \_,c -> prepCase c ; + + oper artDef : Bool -> Gender -> Number -> Case -> Str = \isNP,g,n,c -> case isNP of { True => case of { @@ -59,121 +132,74 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo } } ; + oper possCase = \_,_,c -> prepCase c ; - partitive = \_,c -> prepCase c ; - -{- - partitive = \g,c -> case c of { - CPrep P_de => "de" ; - _ => prepCase c ++ artDef g Sg (CPrep P_de) - } ; --} - - conjunctCase : Case -> Case = \c -> case c of { - Nom => Nom ; - _ => Acc - } ; - + oper auxVerb : VType -> (VF => Str) = \_ -> haver_V.s ; - vpAgrClit : Agr -> VPAgr = \a -> - vpAgrNone ; - - pronArg = \n,p,acc,dat -> - let - paccp = case acc of { - CRefl => ; - CPron ag an ap => ; - _ => <[],P2,False> - } ; - pdatp = case dat of { - CPron ag an ap => ; - _ => <[],P2,False> - } ; - peither = case acc of { - CRefl | CPron _ _ _ => True ; - _ => case dat of { - CPron _ _ _ => True ; - _ => False - } - } ; - defaultPronArg = ----- defaultPronArg = - in - ---- case < : Person * Person> of { - ---- => <"se" ++ paccp.p1, [], True> ; - ---- _ => defaultPronArg - --- } ; - ---- 8/6/2008 efficiency problem in pgf generation: replace the case expr with - ---- a constant produces an error in V3 predication with two pronouns - defaultPronArg ; - - infForm _ _ _ _ = True ; - - mkImperative b p vp = - \\pol,g,n => - let - pe = case b of {True => P3 ; _ => p} ; - agr = {g = g ; n = n ; p = pe} ; - refl = case vp.s.vtyp of { - VRefl => ; - _ => <[],False> - } ; - - clpr = ; ----- clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ; -----e verb = case of { -----e => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ; -----e _ => (vp.s ! VPImperat).fin ! agr -----e } ; - verb = vp.s.s ! vImper n pe ; - neg = vp.neg ! pol ; - compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol - in - neg.p1 ++ verb ++ bindIf refl.p2 ++ refl.p1 ++ bindIf clpr.p3 ++ clpr.p1 ++ compl ; - - CopulaType = Bool ; - selectCopula = \isEstar -> case isEstar of {True => estar_V ; False => copula} ; - serCopula = False ; - estarCopula = True ; - negation : RPolarity => (Str * Str) = table { RPos => <[],[]> ; RNeg _ => <"não",[]> } ; + copula : Verb = verbBeschH (ser_3 "ser") ; + + oper conjThan = "que" ; conjThat = "que" ; + + oper subjIf = "se" ; - - clitInf b cli inf = inf ++ bindIf b ++ cli ; - + oper relPron : Bool => AAgr => Case => Str = \\b,a,c => case c of { Nom | Acc => "que" ; CPrep P_a => "cujo" ; _ => prepCase c ++ "cujo" - } ; + } ; pronSuch : AAgr => Str = aagrForms "tal" "tal" "tais" "tais" ; - quelPron : AAgr => Str = aagrForms "qual" "qual" "quais" "quais" ; - - partQIndir = [] ; ---- ? + oper + partQIndir = [] ; + oper reflPron : Number -> Person -> Case -> Str = \n,p,c -> - let pro = argPron Fem n p c - in - case p of { + let pro = argPron Fem n p c + in + case p of { P3 => case c of { Acc | CPrep P_a => "se" ; _ => "si" } ; _ => pro - } ; + } ; + oper + auxPassive : Verb = copula ; + + oper + vpAgrClits : Verb -> AAgr -> VPAgrType ; + -- exception + vpAgrClits v a = ; + + oper + subjPron = \_ -> [] ; + + oper + polNegDirSubj = RPos ; + + oper + infForm _ _ _ _ = True ; + + oper + vpAgrClit : Agr -> VPAgr = \a -> + vpAgrNone ; + +-- oper's opers + oper argPron : Gender -> Number -> Person -> Case -> Str = let cases : (x,y : Str) -> Case -> Str = \me,moi,c -> case c of { @@ -195,28 +221,16 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo <_, Sg,P3> => cases3 "o" "seu" "ele" ; => cases3 "as" "suas" "elas" ; <_, Pl,P3> => cases3 "os" "seus" "eles" - } ; - - vRefl _ = VRefl ; - isVRefl : VType -> Bool = \ty -> case ty of { - VRefl => True ; - _ => False } ; - auxPassive : Verb = copula ; - - copula : Verb = verbBeschH (ser_3 "ser") ; - estar_V : Verb = verbBeschH (estar_10 "estar") ; haver_V : Verb = verbBeschH (haver_2 "haver") ; ficar_V : Verb = verbBeschH (ficar_12 "ficar") ; - verbBeschH : Verbum -> Verb = \v -> verbBesch v ** {vtyp = VHabere ; p = []} ; - - subjPron = \_ -> [] ; - - polNegDirSubj = RPos ; + verbBeschH : Verbum -> Verb ; + -- make a verb of type haver + verbBeschH v = verbBesch v ** {vtyp = VHabere ; p = []} ; } From 71220ebaf48f7c9429b68790f3e538e113559b1f Mon Sep 17 00:00:00 2001 From: odanoburu Date: Thu, 17 May 2018 12:46:10 -0300 Subject: [PATCH 08/11] (Por) add IrregBesch module with verbs using Besch paradigms - Besch : - use hack to prevent runtime failure with glue in in vars output - rm paradigm numbers - add IrregBeschPor, verbs that use only bescherelle paradigms - use them in Construction, Structural, Idiom, Extra - Diff and Paradigms had (almost) the same oper (verboV/verbBeschH), so combine them into one and use it --- src/portuguese/BeschPor.gf | 166 ++++++------- src/portuguese/ConstructionPor.gf | 8 +- src/portuguese/DiffPor.gf | 12 +- src/portuguese/ExtraPor.gf | 4 +- src/portuguese/IdiomPor.gf | 8 +- src/portuguese/IrregBeschPor.gf | 360 +++++++++++++++++++++++++++++ src/portuguese/IrregBeschPorAbs.gf | 354 ++++++++++++++++++++++++++++ src/portuguese/IrregPor.gf | 7 +- src/portuguese/IrregPorAbs.gf | 2 - src/portuguese/ParadigmsPor.gf | 48 ++-- src/portuguese/StructuralPor.gf | 11 +- 11 files changed, 839 insertions(+), 141 deletions(-) create mode 100644 src/portuguese/IrregBeschPor.gf create mode 100644 src/portuguese/IrregBeschPorAbs.gf diff --git a/src/portuguese/BeschPor.gf b/src/portuguese/BeschPor.gf index bf7f10dc8..16fd305c9 100644 --- a/src/portuguese/BeschPor.gf +++ b/src/portuguese/BeschPor.gf @@ -67,17 +67,17 @@ oper mkPass : Str -> Gender => Number => Str ; -- passive form is highly predictable from singular masculine - mkPass p = case p of { + mkPass p' = let p = p' + [] in case p of { amad + "o" => genNumForms p (amad + "a") (amad + "os") (amad + "as") ; entregu + "e" => \\g => numForms p (p + "s") ; _ => error "unknown ending" -- nothing should reach here } ; - -- paradigm numbers follow Portuguese Bescherelle, unless they are - -- prefixed by 'r', in which case they follow =Ryan, - -- M. A. Conjugação dos Verbos em Português. ática, 1991.= + -- you can look up verb paradigms in the Portuguese Bescherelle, + -- or in =Ryan, M. A. Conjugação dos Verbos em Português. ática, + -- 1991.= -oper ter_1 : Str -> Verbum = \ter -> +oper ter_Besch : Str -> Verbum = \ter -> let x_ = Predef.tk 3 ter in {s = table { VI Infn => x_ + "ter" ; @@ -146,7 +146,7 @@ oper ter_1 : Str -> Verbum = \ter -> } } ; -oper haver_2 : Str -> Verbum = \haver -> +oper haver_Besch : Str -> Verbum = \haver -> let x_ = Predef.tk 5 haver in {s = table { VI Infn => x_ + "haver" ; @@ -215,7 +215,7 @@ oper haver_2 : Str -> Verbum = \haver -> } } ; -oper ser_3 : Str -> Verbum = \ser -> +oper ser_Besch : Str -> Verbum = \ser -> let x_ = Predef.tk 3 ser in {s = table { VI Infn => x_ + "ser" ; @@ -284,7 +284,7 @@ oper ser_3 : Str -> Verbum = \ser -> } } ; -oper comprar_4 : Str -> Verbum = \comprar -> +oper comprar_Besch : Str -> Verbum = \comprar -> let compr_ = Predef.tk 2 comprar in {s = table { VI Infn => compr_ + "ar" ; @@ -353,7 +353,7 @@ oper comprar_4 : Str -> Verbum = \comprar -> } } ; -oper vender_5 : Str -> Verbum = \vender -> +oper vender_Besch : Str -> Verbum = \vender -> let vend_ = Predef.tk 2 vender in {s = table { VI Infn => vend_ + "er" ; @@ -422,7 +422,7 @@ oper vender_5 : Str -> Verbum = \vender -> } } ; -oper garantir_6 : Str -> Verbum = \garantir -> +oper garantir_Besch : Str -> Verbum = \garantir -> let garant_ = Predef.tk 2 garantir in {s = table { VI Infn => garant_ + "ir" ; @@ -491,7 +491,7 @@ oper garantir_6 : Str -> Verbum = \garantir -> } } ; -oper estar_10 : Str -> Verbum = \estar -> +oper estar_Besch : Str -> Verbum = \estar -> let est_ = Predef.tk 2 estar in {s = table { VI Infn => est_ + "ar" ; @@ -560,7 +560,7 @@ oper estar_10 : Str -> Verbum = \estar -> } } ; -oper dar_11 : Str -> Verbum = \dar -> +oper dar_Besch : Str -> Verbum = \dar -> let x_ = Predef.tk 3 dar in {s = table { VI Infn => x_ + "dar" ; @@ -629,7 +629,7 @@ oper dar_11 : Str -> Verbum = \dar -> } } ; -oper ficar_12 : Str -> Verbum = \ficar -> +oper ficar_Besch : Str -> Verbum = \ficar -> let x_ = Predef.tk 5 ficar in {s = table { VI Infn => x_ + "ficar" ; @@ -698,7 +698,7 @@ oper ficar_12 : Str -> Verbum = \ficar -> } } ; -oper começar_13 : Str -> Verbum = \começar -> +oper começar_Besch : Str -> Verbum = \começar -> let x_ = Predef.tk 7 começar in {s = table { VI Infn => x_ + "começar" ; @@ -767,7 +767,7 @@ oper começar_13 : Str -> Verbum = \começar -> } } ; -oper chegar_14 : Str -> Verbum = \chegar -> +oper chegar_Besch : Str -> Verbum = \chegar -> let cheg_ = Predef.tk 2 chegar in {s = table { VI Infn => cheg_ + "ar" ; @@ -836,7 +836,7 @@ oper chegar_14 : Str -> Verbum = \chegar -> } } ; -oper recear_15 : Str -> Verbum = \recear -> +oper recear_Besch : Str -> Verbum = \recear -> let rec_ = Predef.tk 3 recear in {s = table { VI Infn => rec_ + "ear" ; @@ -905,7 +905,7 @@ oper recear_15 : Str -> Verbum = \recear -> } } ; -oper anunciar_16 : Str -> Verbum = \anunciar -> +oper anunciar_Besch : Str -> Verbum = \anunciar -> let anunci_ = Predef.tk 2 anunciar in {s = table { VI Infn => anunci_ + "ar" ; @@ -974,7 +974,7 @@ oper anunciar_16 : Str -> Verbum = \anunciar -> } } ; -oper odiar_17 : Str -> Verbum = \odiar -> +oper odiar_Besch : Str -> Verbum = \odiar -> let od_ = Predef.tk 3 odiar in {s = table { VI Infn => od_ + "iar" ; @@ -1043,7 +1043,7 @@ oper odiar_17 : Str -> Verbum = \odiar -> } } ; -oper comerciar_18 : Str -> Verbum = \comerciar -> +oper comerciar_Besch : Str -> Verbum = \comerciar -> let comerc_ = Predef.tk 3 comerciar in {s = table { VI Infn => comerc_ + "iar" ; @@ -1112,7 +1112,7 @@ oper comerciar_18 : Str -> Verbum = \comerciar -> } } ; -oper saudar_19 : Str -> Verbum = \saudar -> +oper saudar_Besch : Str -> Verbum = \saudar -> let sa_ = Predef.tk 4 saudar in {s = table { VI Infn => sa_ + "udar" ; @@ -1181,7 +1181,7 @@ oper saudar_19 : Str -> Verbum = \saudar -> } } ; -oper perdoar_20 : Str -> Verbum = \perdoar -> +oper perdoar_Besch : Str -> Verbum = \perdoar -> let perd_ = Predef.tk 3 perdoar in {s = table { VI Infn => perd_ + "oar" ; @@ -1250,7 +1250,7 @@ oper perdoar_20 : Str -> Verbum = \perdoar -> } } ; -oper averiguar_21 : Str -> Verbum = \averiguar -> +oper averiguar_Besch : Str -> Verbum = \averiguar -> let averigu_ = Predef.tk 2 averiguar in {s = table { VI Infn => averigu_ + "ar" ; @@ -1319,7 +1319,7 @@ oper averiguar_21 : Str -> Verbum = \averiguar -> } } ; -oper neviscar_22 : Str -> Verbum = \neviscar -> +oper neviscar_Besch : Str -> Verbum = \neviscar -> let n_ = Predef.tk 7 neviscar in {s = table { VI Infn => n_ + "eviscar" ; @@ -1388,7 +1388,7 @@ oper neviscar_22 : Str -> Verbum = \neviscar -> } } ; -oper adequar_23 : Str -> Verbum = \adequar -> +oper adequar_Besch : Str -> Verbum = \adequar -> let adequ_ = Predef.tk 2 adequar in {s = table { VI Infn => adequ_ + "ar" ; @@ -1457,7 +1457,7 @@ oper adequar_23 : Str -> Verbum = \adequar -> } } ; -oper relampaguear_24 : Str -> Verbum = \relampaguear -> +oper relampaguear_Besch : Str -> Verbum = \relampaguear -> let relamp_ = Predef.tk 6 relampaguear in {s = table { VI Infn => relamp_ + "aguear" ; @@ -1526,7 +1526,7 @@ oper relampaguear_24 : Str -> Verbum = \relampaguear -> } } ; -oper aquecer_25 : Str -> Verbum = \aquecer -> +oper aquecer_Besch : Str -> Verbum = \aquecer -> let aque_ = Predef.tk 3 aquecer in {s = table { VI Infn => aque_ + "cer" ; @@ -1595,7 +1595,7 @@ oper aquecer_25 : Str -> Verbum = \aquecer -> } } ; -oper proteger_26 : Str -> Verbum = \proteger -> +oper proteger_Besch : Str -> Verbum = \proteger -> let prote_ = Predef.tk 3 proteger in {s = table { VI Infn => prote_ + "ger" ; @@ -1664,7 +1664,7 @@ oper proteger_26 : Str -> Verbum = \proteger -> } } ; -oper erguer_27 : Str -> Verbum = \erguer -> +oper erguer_Besch : Str -> Verbum = \erguer -> let erg_ = Predef.tk 3 erguer in {s = table { VI Infn => erg_ + "uer" ; @@ -1733,7 +1733,7 @@ oper erguer_27 : Str -> Verbum = \erguer -> } } ; -oper moer_28 : Str -> Verbum = \moer -> +oper moer_Besch : Str -> Verbum = \moer -> let m_ = Predef.tk 3 moer in {s = table { VI Infn => m_ + "oer" ; @@ -1802,7 +1802,7 @@ oper moer_28 : Str -> Verbum = \moer -> } } ; -oper dizer_29 : Str -> Verbum = \dizer -> +oper dizer_Besch : Str -> Verbum = \dizer -> let di_ = Predef.tk 3 dizer in {s = table { VI Infn => di_ + "zer" ; @@ -1871,7 +1871,7 @@ oper dizer_29 : Str -> Verbum = \dizer -> } } ; -oper trazer_30 : Str -> Verbum = \trazer -> +oper trazer_Besch : Str -> Verbum = \trazer -> let tr_ = Predef.tk 4 trazer in {s = table { VI Infn => tr_ + "azer" ; @@ -1940,7 +1940,7 @@ oper trazer_30 : Str -> Verbum = \trazer -> } } ; -oper fazer_31 : Str -> Verbum = \fazer -> +oper fazer_Besch : Str -> Verbum = \fazer -> let f_ = Predef.tk 4 fazer in {s = table { VI Infn => f_ + "azer" ; @@ -2009,7 +2009,7 @@ oper fazer_31 : Str -> Verbum = \fazer -> } } ; -oper aprazer_32 : Str -> Verbum = \aprazer -> +oper aprazer_Besch : Str -> Verbum = \aprazer -> let apr_ = Predef.tk 4 aprazer in {s = table { VI Infn => apr_ + "azer" ; @@ -2078,7 +2078,7 @@ oper aprazer_32 : Str -> Verbum = \aprazer -> } } ; -oper jazer_33 : Str -> Verbum = \jazer -> +oper jazer_Besch : Str -> Verbum = \jazer -> let jaz_ = Predef.tk 2 jazer in {s = table { VI Infn => jaz_ + "er" ; @@ -2147,7 +2147,7 @@ oper jazer_33 : Str -> Verbum = \jazer -> } } ; -oper caber_34 : Str -> Verbum = \caber -> +oper caber_Besch : Str -> Verbum = \caber -> let c_ = Predef.tk 4 caber in {s = table { VI Infn => c_ + "aber" ; @@ -2216,7 +2216,7 @@ oper caber_34 : Str -> Verbum = \caber -> } } ; -oper saber_35 : Str -> Verbum = \saber -> +oper saber_Besch : Str -> Verbum = \saber -> let s_ = Predef.tk 4 saber in {s = table { VI Infn => s_ + "aber" ; @@ -2285,7 +2285,7 @@ oper saber_35 : Str -> Verbum = \saber -> } } ; -oper poder_36 : Str -> Verbum = \poder -> +oper poder_Besch : Str -> Verbum = \poder -> let p_ = Predef.tk 4 poder in {s = table { VI Infn => p_ + "oder" ; @@ -2354,7 +2354,7 @@ oper poder_36 : Str -> Verbum = \poder -> } } ; -oper crer_37 : Str -> Verbum = \crer -> +oper crer_Besch : Str -> Verbum = \crer -> let cr_ = Predef.tk 2 crer in {s = table { VI Infn => cr_ + "er" ; @@ -2423,7 +2423,7 @@ oper crer_37 : Str -> Verbum = \crer -> } } ; -oper querer_38 : Str -> Verbum = \querer -> +oper querer_Besch : Str -> Verbum = \querer -> let qu_ = Predef.tk 4 querer in {s = table { VI Infn => qu_ + "erer" ; @@ -2492,7 +2492,7 @@ oper querer_38 : Str -> Verbum = \querer -> } } ; -oper requerer_39 : Str -> Verbum = \requerer -> +oper requerer_Besch : Str -> Verbum = \requerer -> let reque_ = Predef.tk 3 requerer in {s = table { VI Infn => reque_ + "rer" ; @@ -2561,7 +2561,7 @@ oper requerer_39 : Str -> Verbum = \requerer -> } } ; -oper ver_40 : Str -> Verbum = \ver -> +oper ver_Besch : Str -> Verbum = \ver -> let v_ = Predef.tk 2 ver in {s = table { VI Infn => v_ + "er" ; @@ -2630,7 +2630,7 @@ oper ver_40 : Str -> Verbum = \ver -> } } ; -oper prover_41 : Str -> Verbum = \prover -> +oper prover_Besch : Str -> Verbum = \prover -> let prov_ = Predef.tk 2 prover in {s = table { VI Infn => prov_ + "er" ; @@ -2699,7 +2699,7 @@ oper prover_41 : Str -> Verbum = \prover -> } } ; -oper ler_42 : Str -> Verbum = \ler -> +oper ler_Besch : Str -> Verbum = \ler -> let l_ = Predef.tk 2 ler in {s = table { VI Infn => l_ + "er" ; @@ -2768,7 +2768,7 @@ oper ler_42 : Str -> Verbum = \ler -> } } ; -oper valer_43 : Str -> Verbum = \valer -> +oper valer_Besch : Str -> Verbum = \valer -> let val_ = Predef.tk 2 valer in {s = table { VI Infn => val_ + "er" ; @@ -2837,7 +2837,7 @@ oper valer_43 : Str -> Verbum = \valer -> } } ; -oper perder_44 : Str -> Verbum = \perder -> +oper perder_Besch : Str -> Verbum = \perder -> let per_ = Predef.tk 3 perder in {s = table { VI Infn => per_ + "der" ; @@ -2906,7 +2906,7 @@ oper perder_44 : Str -> Verbum = \perder -> } } ; -oper pôr_45 : Str -> Verbum = \pôr -> +oper pôr_Besch : Str -> Verbum = \pôr -> let p_ = Predef.tk 2 pôr in {s = table { VI Infn => p_ + "ôr" ; @@ -2975,7 +2975,7 @@ oper pôr_45 : Str -> Verbum = \pôr -> } } ; -oper acontecer_46 : Str -> Verbum = \acontecer -> +oper acontecer_Besch : Str -> Verbum = \acontecer -> let aconte_ = Predef.tk 3 acontecer in {s = table { VI Infn => aconte_ + "cer" ; @@ -3044,7 +3044,7 @@ oper acontecer_46 : Str -> Verbum = \acontecer -> } } ; -oper chover_47 : Str -> Verbum = \chover -> +oper chover_Besch : Str -> Verbum = \chover -> let chov_ = Predef.tk 2 chover in {s = table { VI Infn => chov_ + "er" ; @@ -3113,7 +3113,7 @@ oper chover_47 : Str -> Verbum = \chover -> } } ; -oper doer_48 : Str -> Verbum = \doer -> +oper doer_Besch : Str -> Verbum = \doer -> let d_ = Predef.tk 3 doer in {s = table { VI Infn => d_ + "oer" ; @@ -3182,7 +3182,7 @@ oper doer_48 : Str -> Verbum = \doer -> } } ; -oper prazer_49 : Str -> Verbum = \prazer -> +oper prazer_Besch : Str -> Verbum = \prazer -> let pr_ = Predef.tk 4 prazer in {s = table { VI Infn => pr_ + "azer" ; @@ -3251,7 +3251,7 @@ oper prazer_49 : Str -> Verbum = \prazer -> } } ; -oper precaver_50 : Str -> Verbum = \precaver -> +oper precaver_Besch : Str -> Verbum = \precaver -> let precav_ = Predef.tk 2 precaver in {s = table { VI Infn => precav_ + "er" ; @@ -3320,7 +3320,7 @@ oper precaver_50 : Str -> Verbum = \precaver -> } } ; -oper reaver_51 : Str -> Verbum = \reaver -> +oper reaver_Besch : Str -> Verbum = \reaver -> let re_ = Predef.tk 4 reaver in {s = table { VI Infn => re_ + "aver" ; @@ -3389,7 +3389,7 @@ oper reaver_51 : Str -> Verbum = \reaver -> } } ; -oper redigir_52 : Str -> Verbum = \redigir -> +oper redigir_Besch : Str -> Verbum = \redigir -> let red_ = Predef.tk 4 redigir in {s = table { VI Infn => red_ + "igir" ; @@ -3458,7 +3458,7 @@ oper redigir_52 : Str -> Verbum = \redigir -> } } ; -oper extinguir_53 : Str -> Verbum = \extinguir -> +oper extinguir_Besch : Str -> Verbum = \extinguir -> let extin_ = Predef.tk 4 extinguir in {s = table { VI Infn => extin_ + "guir" ; @@ -3527,7 +3527,7 @@ oper extinguir_53 : Str -> Verbum = \extinguir -> } } ; -oper servir_54 : Str -> Verbum = \servir -> +oper servir_Besch : Str -> Verbum = \servir -> let s_ = Predef.tk 5 servir in {s = table { VI Infn => s_ + "ervir" ; @@ -3596,7 +3596,7 @@ oper servir_54 : Str -> Verbum = \servir -> } } ; -oper seguir_55 : Str -> Verbum = \seguir -> +oper seguir_Besch : Str -> Verbum = \seguir -> let s_ = Predef.tk 5 seguir in {s = table { VI Infn => s_ + "eguir" ; @@ -3665,7 +3665,7 @@ oper seguir_55 : Str -> Verbum = \seguir -> } } ; -oper sentir_56 : Str -> Verbum = \sentir -> +oper sentir_Besch : Str -> Verbum = \sentir -> let s_ = Predef.tk 5 sentir in {s = table { VI Infn => s_ + "entir" ; @@ -3734,7 +3734,7 @@ oper sentir_56 : Str -> Verbum = \sentir -> } } ; -oper preferir_57 : Str -> Verbum = \preferir -> +oper preferir_Besch : Str -> Verbum = \preferir -> let pref_ = Predef.tk 4 preferir in {s = table { VI Infn => pref_ + "erir" ; @@ -3803,7 +3803,7 @@ oper preferir_57 : Str -> Verbum = \preferir -> } } ; -oper agredir_58 : Str -> Verbum = \agredir -> +oper agredir_Besch : Str -> Verbum = \agredir -> let agr_ = Predef.tk 4 agredir in {s = table { VI Infn => agr_ + "edir" ; @@ -3872,7 +3872,7 @@ oper agredir_58 : Str -> Verbum = \agredir -> } } ; -oper dormir_59 : Str -> Verbum = \dormir -> +oper dormir_Besch : Str -> Verbum = \dormir -> let d_ = Predef.tk 5 dormir in {s = table { VI Infn => d_ + "ormir" ; @@ -3941,7 +3941,7 @@ oper dormir_59 : Str -> Verbum = \dormir -> } } ; -oper polir_60 : Str -> Verbum = \polir -> +oper polir_Besch : Str -> Verbum = \polir -> let p_ = Predef.tk 4 polir in {s = table { VI Infn => p_ + "olir" ; @@ -4010,7 +4010,7 @@ oper polir_60 : Str -> Verbum = \polir -> } } ; -oper acudir_61 : Str -> Verbum = \acudir -> +oper acudir_Besch : Str -> Verbum = \acudir -> let ac_ = Predef.tk 4 acudir in {s = table { VI Infn => ac_ + "udir" ; @@ -4079,7 +4079,7 @@ oper acudir_61 : Str -> Verbum = \acudir -> } } ; -oper fugir_62 : Str -> Verbum = \fugir -> +oper fugir_Besch : Str -> Verbum = \fugir -> let f_ = Predef.tk 4 fugir in {s = table { VI Infn => f_ + "ugir" ; @@ -4148,7 +4148,7 @@ oper fugir_62 : Str -> Verbum = \fugir -> } } ; -oper frigir_63 : Str -> Verbum = \frigir -> +oper frigir_Besch : Str -> Verbum = \frigir -> let fr_ = Predef.tk 4 frigir in {s = table { VI Infn => fr_ + "igir" ; @@ -4217,7 +4217,7 @@ oper frigir_63 : Str -> Verbum = \frigir -> } } ; -oper divergir_64 : Str -> Verbum = \divergir -> +oper divergir_Besch : Str -> Verbum = \divergir -> let div_ = Predef.tk 5 divergir in {s = table { VI Infn => div_ + "ergir" ; @@ -4286,7 +4286,7 @@ oper divergir_64 : Str -> Verbum = \divergir -> } } ; -oper refletir_65 : Str -> Verbum = \refletir -> +oper refletir_Besch : Str -> Verbum = \refletir -> let refl_ = Predef.tk 4 refletir in {s = table { VI Infn => refl_ + vars "etir" "ectir" ; @@ -4355,7 +4355,7 @@ oper refletir_65 : Str -> Verbum = \refletir -> } } ; -oper ir_66 : Str -> Verbum = \ir -> +oper ir_Besch : Str -> Verbum = \ir -> let x_ = Predef.tk 2 ir in {s = table { VI Infn => x_ + "ir" ; @@ -4424,7 +4424,7 @@ oper ir_66 : Str -> Verbum = \ir -> } } ; -oper vir_67 : Str -> Verbum = \vir -> +oper vir_Besch : Str -> Verbum = \vir -> let v_ = Predef.tk 2 vir in {s = table { VI Infn => v_ + "ir" ; @@ -4493,7 +4493,7 @@ oper vir_67 : Str -> Verbum = \vir -> } } ; -oper sair_68 : Str -> Verbum = \sair -> +oper sair_Besch : Str -> Verbum = \sair -> let sa_ = Predef.tk 2 sair in {s = table { VI Infn => sa_ + "ir" ; @@ -4562,7 +4562,7 @@ oper sair_68 : Str -> Verbum = \sair -> } } ; -oper rir_69 : Str -> Verbum = \rir -> +oper rir_Besch : Str -> Verbum = \rir -> let r_ = Predef.tk 2 rir in {s = table { VI Infn => r_ + "ir" ; @@ -4631,7 +4631,7 @@ oper rir_69 : Str -> Verbum = \rir -> } } ; -oper pedir_70 : Str -> Verbum = \pedir -> +oper pedir_Besch : Str -> Verbum = \pedir -> let pe_ = Predef.tk 3 pedir in {s = table { VI Infn => pe_ + "dir" ; @@ -4700,7 +4700,7 @@ oper pedir_70 : Str -> Verbum = \pedir -> } } ; -oper ouvir_71 : Str -> Verbum = \ouvir -> +oper ouvir_Besch : Str -> Verbum = \ouvir -> let ou_ = Predef.tk 3 ouvir in {s = table { VI Infn => ou_ + "vir" ; @@ -4769,7 +4769,7 @@ oper ouvir_71 : Str -> Verbum = \ouvir -> } } ; -oper traduzir_72 : Str -> Verbum = \traduzir -> +oper traduzir_Besch : Str -> Verbum = \traduzir -> let traduz_ = Predef.tk 2 traduzir in {s = table { VI Infn => traduz_ + "ir" ; @@ -4838,7 +4838,7 @@ oper traduzir_72 : Str -> Verbum = \traduzir -> } } ; -oper distribuir_73 : Str -> Verbum = \distribuir -> +oper distribuir_Besch : Str -> Verbum = \distribuir -> let distribu_ = Predef.tk 2 distribuir in {s = table { VI Infn => distribu_ + "ir" ; @@ -4907,7 +4907,7 @@ oper distribuir_73 : Str -> Verbum = \distribuir -> } } ; -oper destruir_74 : Str -> Verbum = \destruir -> +oper destruir_Besch : Str -> Verbum = \destruir -> let destr_ = Predef.tk 3 destruir in {s = table { VI Infn => destr_ + "uir" ; @@ -4976,7 +4976,7 @@ oper destruir_74 : Str -> Verbum = \destruir -> } } ; -oper arguir_75 : Str -> Verbum = \arguir -> +oper arguir_Besch : Str -> Verbum = \arguir -> let arg_ = Predef.tk 3 arguir in {s = table { VI Infn => arg_ + "uir" ; @@ -5045,7 +5045,7 @@ oper arguir_75 : Str -> Verbum = \arguir -> } } ; -oper reunir_76 : Str -> Verbum = \reunir -> +oper reunir_Besch : Str -> Verbum = \reunir -> let re_ = Predef.tk 4 reunir in {s = table { VI Infn => re_ + "unir" ; @@ -5114,7 +5114,7 @@ oper reunir_76 : Str -> Verbum = \reunir -> } } ; -oper proibir_77 : Str -> Verbum = \proibir -> +oper proibir_Besch : Str -> Verbum = \proibir -> let pro_ = Predef.tk 4 proibir in {s = table { VI Infn => pro_ + "ibir" ; @@ -5183,7 +5183,7 @@ oper proibir_77 : Str -> Verbum = \proibir -> } } ; -oper imergir_78 : Str -> Verbum = \imergir -> +oper imergir_Besch : Str -> Verbum = \imergir -> let imerg_ = Predef.tk 2 imergir in {s = table { VI Infn => imerg_ + "ir" ; @@ -5252,7 +5252,7 @@ oper imergir_78 : Str -> Verbum = \imergir -> } } ; -oper falir_79 : Str -> Verbum = \falir -> +oper falir_Besch : Str -> Verbum = \falir -> let fal_ = Predef.tk 2 falir in {s = table { VI Infn => fal_ + "ir" ; @@ -5321,7 +5321,7 @@ oper falir_79 : Str -> Verbum = \falir -> } } ; -oper remir_80 : Str -> Verbum = \remir -> +oper remir_Besch : Str -> Verbum = \remir -> let rem_ = Predef.tk 2 remir in {s = table { VI Infn => rem_ + "ir" ; @@ -5390,7 +5390,7 @@ oper remir_80 : Str -> Verbum = \remir -> } } ; -oper viajar_r22 : Str -> Verbum = \viajar -> +oper viajar_Besch : Str -> Verbum = \viajar -> let viaj_ = Predef.tk 2 viajar in {s = table { VI Infn => viaj_ + "ar" ; @@ -5459,7 +5459,7 @@ oper viajar_r22 : Str -> Verbum = \viajar -> } } ; -oper suar_r37 : Str -> Verbum = \suar -> +oper suar_Besch : Str -> Verbum = \suar -> let su_ = Predef.tk 2 suar in {s = table { VI Infn => su_ + "ar" ; diff --git a/src/portuguese/ConstructionPor.gf b/src/portuguese/ConstructionPor.gf index d861f1cf7..4d4edbf8e 100644 --- a/src/portuguese/ConstructionPor.gf +++ b/src/portuguese/ConstructionPor.gf @@ -2,7 +2,7 @@ concrete ConstructionPor of Construction = CatPor ** open SyntaxPor, SymbolicPor, ParadigmsPor, BeschPor, - (L = LexiconPor), (E = ExtraPor), (I = IrregPor), (R = ResPor), (C = CommonRomance), + (L = LexiconPor), (E = ExtraPor), (B = IrregBeschPor), (R = ResPor), (C = CommonRomance), Prelude in { flags coding=utf8 ; @@ -20,13 +20,13 @@ lin what_name_QCl x = mkQCl how_IAdv (mkCl (lin NP x) (reflV (mkV "chamar"))) ; how_old_QCl x = mkQCl (mkIP how8many_IDet L.year_N) x have_V2 ; - how_far_QCl x = mkQCl (lin IAdv (ss "a que distância")) (mkCl x I.estar_V) ; + how_far_QCl x = mkQCl (lin IAdv (ss "a que distância")) (mkCl x B.estar_V) ; -- some more things - weather_adjCl ap = mkCl (mkVP (mkVA I.fazer_V) (lin AP ap)) ; + weather_adjCl ap = mkCl (mkVP (mkVA B.fazer_V) (lin AP ap)) ; is_right_VP = E.ComplCN have_V2 (mkCN (mkN "razão")) ; - is_wrong_VP = mkVP (mkVA I.estar_V) (mkAP (mkA "errado")) ; + is_wrong_VP = mkVP (mkVA B.estar_V) (mkAP (mkA "errado")) ; n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP (lin CN cn)))) (lin A a) ; diff --git a/src/portuguese/DiffPor.gf b/src/portuguese/DiffPor.gf index 28bc0b11f..423540588 100644 --- a/src/portuguese/DiffPor.gf +++ b/src/portuguese/DiffPor.gf @@ -143,7 +143,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo RNeg _ => <"não",[]> } ; - copula : Verb = verbBeschH (ser_3 "ser") ; + copula : Verb = verboV (ser_Besch "ser") ; oper conjThan = "que" ; @@ -223,14 +223,14 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo <_, Pl,P3> => cases3 "os" "seus" "eles" } ; - estar_V : Verb = verbBeschH (estar_10 "estar") ; + estar_V : Verb = verboV (estar_Besch "estar") ; - haver_V : Verb = verbBeschH (haver_2 "haver") ; + haver_V : Verb = verboV (haver_Besch "haver") ; - ficar_V : Verb = verbBeschH (ficar_12 "ficar") ; + ficar_V : Verb = verboV (ficar_Besch "ficar") ; - verbBeschH : Verbum -> Verb ; + verboV : Verbum -> Verb ; -- make a verb of type haver - verbBeschH v = verbBesch v ** {vtyp = VHabere ; p = []} ; + verboV v = verbBesch v ** {vtyp = VHabere ; p = [] ; lock_V = <>} ; } diff --git a/src/portuguese/ExtraPor.gf b/src/portuguese/ExtraPor.gf index 6c8e181c5..ab03b7669 100644 --- a/src/portuguese/ExtraPor.gf +++ b/src/portuguese/ExtraPor.gf @@ -1,5 +1,5 @@ concrete ExtraPor of ExtraPorAbs = ExtraRomancePor ** - open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor), (S = StructuralPor), + open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (B = IrregBeschPor), (S = StructuralPor), Prelude in { flags coding=utf8 ; @@ -55,6 +55,6 @@ concrete ExtraPor of ExtraPorAbs = ExtraRomancePor ** ExistsNP np = mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ; - UseComp_estar comp = insertComplement comp.s (predV I.estar_V) ; + UseComp_estar comp = insertComplement comp.s (predV B.estar_V) ; } diff --git a/src/portuguese/IdiomPor.gf b/src/portuguese/IdiomPor.gf index 138fecea3..90e26b36e 100644 --- a/src/portuguese/IdiomPor.gf +++ b/src/portuguese/IdiomPor.gf @@ -1,5 +1,5 @@ concrete IdiomPor of Idiom = CatPor ** - open (P = ParamX), MorphoPor, ParadigmsPor, BeschPor, Prelude in { + open (P = ParamX), MorphoPor, ParadigmsPor, BeschPor, IrregBeschPor, Prelude in { flags optimize=all_subs ; @@ -20,11 +20,11 @@ concrete IdiomPor of Idiom = CatPor ** ExistNP np = mkClause [] True False (agrP3 Masc Sg) - (insertComplement (\\_ => (np.s ! Acc).ton) (predV (mkV (haver_2 "haver")))) ; + (insertComplement (\\_ => (np.s ! Acc).ton) (predV haver_V)) ; ExistIP ip = { s = \\t,a,p,_ => ip.s ! Nom ++ - (mkClause [] True False (agrP3 Masc Sg) (predV (mkV (haver_2 "haver")))).s ! DDir ! t ! a ! p ! Indic + (mkClause [] True False (agrP3 Masc Sg) (predV haver_V)).s ! DDir ! t ! a ! p ! Indic } ; ProgrVP vp = @@ -36,7 +36,7 @@ concrete IdiomPor of Idiom = CatPor ** in vp.s.s ! VGer ++ clpr.p1 ++ obj ) - (predV (mkV (estar_10 "estar"))) ; + (predV estar_V) ; ImpPl1 vp = {s = mkImperative False P1 vp ! RPos ! Masc ! Pl ; --- fem diff --git a/src/portuguese/IrregBeschPor.gf b/src/portuguese/IrregBeschPor.gf new file mode 100644 index 000000000..21c8c72da --- /dev/null +++ b/src/portuguese/IrregBeschPor.gf @@ -0,0 +1,360 @@ +--# -path=.:../romance:../common:../abstract:../prelude + +concrete IrregBeschPor of IrregBeschPorAbs = CatPor ** + open ParadigmsPor, BeschPor in { + +flags optimize=noexpand ; + coding=utf8 ; + +-- machine-generated file: do not edit directly! + +-- look up your verb here. if you don't find it, see if +-- if you can find out what is its paradigm and then add it! + + lin + acontecer_V = mkV (acontecer_Besch "acontecer") ; + acudir_V = mkV (acudir_Besch "acudir") ; + bulir_V = mkV (acudir_Besch "bulir") ; + cuspir_V = mkV (acudir_Besch "cuspir") ; + sacudir_V = mkV (acudir_Besch "sacudir") ; + subir_V = mkV (acudir_Besch "subir") ; + sumir_V = mkV (acudir_Besch "sumir") ; + consumir_V = mkV (acudir_Besch "consumir") ; + adequar_V = mkV (adequar_Besch "adequar") ; + agredir_V = mkV (agredir_Besch "agredir") ; + denegrir_V = mkV (agredir_Besch "denegrir") ; + prevenir_V = mkV (agredir_Besch "prevenir") ; + progredir_V = mkV (agredir_Besch "progredir") ; + transgredir_V = mkV (agredir_Besch "transgredir") ; + anunciar_V = mkV (anunciar_Besch "anunciar") ; + abreviar_V = mkV (anunciar_Besch "abreviar") ; + acariciar_V = mkV (anunciar_Besch "acariciar") ; + afiar_V = mkV (anunciar_Besch "afiar") ; + aliviar_V = mkV (anunciar_Besch "aliviar") ; + apreciar_V = mkV (anunciar_Besch "apreciar") ; + assobiar_V = mkV (anunciar_Besch "assobiar") ; + avaliar_V = mkV (anunciar_Besch "avaliar") ; + avariar_V = mkV (anunciar_Besch "avariar") ; + criar_V = mkV (anunciar_Besch "criar") ; + denunciar_V = mkV (anunciar_Besch "denunciar") ; + desviar_V = mkV (anunciar_Besch "desviar") ; + enfiar_V = mkV (anunciar_Besch "enfiar") ; + enviar_V = mkV (anunciar_Besch "enviar") ; + iniciar_V = mkV (anunciar_Besch "iniciar") ; + principiar_V = mkV (anunciar_Besch "principiar") ; + pronunciar_V = mkV (anunciar_Besch "pronunciar") ; + renunciar_V = mkV (anunciar_Besch "renunciar") ; + aprazer_V = mkV (aprazer_Besch "aprazer") ; + desprazer_V = mkV (aprazer_Besch "desprazer") ; + aquecer_V = mkV (aquecer_Besch "aquecer") ; + agradecer_V = mkV (aquecer_Besch "agradecer") ; + amarelecer_V = mkV (aquecer_Besch "amarelecer") ; + amolecer_V = mkV (aquecer_Besch "amolecer") ; + arrefecer_V = mkV (aquecer_Besch "arrefecer") ; + empecer_V = mkV (aquecer_Besch "empecer") ; + entretecer_V = mkV (aquecer_Besch "entretecer") ; + entristecer_V = mkV (aquecer_Besch "entristecer") ; + escurecer_V = mkV (aquecer_Besch "escurecer") ; + estremecer_V = mkV (aquecer_Besch "estremecer") ; + favorecer_V = mkV (aquecer_Besch "favorecer") ; + merecer_V = mkV (aquecer_Besch "merecer") ; + oferecer_V = mkV (aquecer_Besch "oferecer") ; + parecer_V = mkV (aquecer_Besch "parecer") ; + perecer_V = mkV (aquecer_Besch "perecer") ; + reverdecer_V = mkV (aquecer_Besch "reverdecer") ; + tecer_V = mkV (aquecer_Besch "tecer") ; + arguir_V = mkV (arguir_Besch "arguir") ; + redarguir_V = mkV (arguir_Besch "redarguir") ; + averiguar_V = mkV (averiguar_Besch "averiguar") ; + aguar_V = mkV (averiguar_Besch "aguar") ; + apaniguar_V = mkV (averiguar_Besch "apaniguar") ; + apaziguar_V = mkV (averiguar_Besch "apaziguar") ; + apropinquar_V = mkV (averiguar_Besch "apropinquar") ; + deliquar_V = mkV (averiguar_Besch "deliquar") ; + desaguar_V = mkV (averiguar_Besch "desaguar") ; + enxaguar_V = mkV (averiguar_Besch "enxaguar") ; + obliquar_V = mkV (averiguar_Besch "obliquar") ; + caber_V = mkV (caber_Besch "caber") ; + chegar_V = mkV (chegar_Besch "chegar") ; + chover_V = mkV (chover_Besch "chover") ; + começar_V = mkV (começar_Besch "começar") ; + comerciar_V = mkV (comerciar_Besch "comerciar") ; + agenciar_V = mkV (comerciar_Besch "agenciar") ; + licenciar_V = mkV (comerciar_Besch "licenciar") ; + negociar_V = mkV (comerciar_Besch "negociar") ; + obsequiar_V = mkV (comerciar_Besch "obsequiar") ; + premiar_V = mkV (comerciar_Besch "premiar") ; + providenciar_V = mkV (comerciar_Besch "providenciar") ; + sentenciar_V = mkV (comerciar_Besch "sentenciar") ; + silenciar_V = mkV (comerciar_Besch "silenciar") ; + comprar_V = mkV (comprar_Besch "comprar") ; + crer_V = mkV (crer_Besch "crer") ; + descrer_V = mkV (crer_Besch "descrer") ; + dar_V = mkV (dar_Besch "dar") ; + destruir_V = mkV (destruir_Besch "destruir") ; + construir_V = mkV (destruir_Besch "construir") ; + reconstruir_V = mkV (destruir_Besch "reconstruir") ; + distribuir_V = mkV (distribuir_Besch "distribuir") ; + imbuir_V = mkV (distribuir_Besch "imbuir") ; + afluir_V = mkV (distribuir_Besch "afluir") ; + confluir_V = mkV (distribuir_Besch "confluir") ; + fluir_V = mkV (distribuir_Besch "fluir") ; + influir_V = mkV (distribuir_Besch "influir") ; + refluir_V = mkV (distribuir_Besch "refluir") ; + atribuir_V = mkV (distribuir_Besch "atribuir") ; + contribuir_V = mkV (distribuir_Besch "contribuir") ; + retribuir_V = mkV (distribuir_Besch "retribuir") ; + instituir_V = mkV (distribuir_Besch "instituir") ; + restituir_V = mkV (distribuir_Besch "restituir") ; + substituir_V = mkV (distribuir_Besch "substituir") ; + divergir_V = mkV (divergir_Besch "divergir") ; + aspergir_V = mkV (divergir_Besch "aspergir") ; + convergir_V = mkV (divergir_Besch "convergir") ; + dizer_V = mkV (dizer_Besch "dizer") ; + bendizer_V = mkV (dizer_Besch "bendizer") ; + condizer_V = mkV (dizer_Besch "condizer") ; + contradizer_V = mkV (dizer_Besch "contradizer") ; + desdizer_V = mkV (dizer_Besch "desdizer") ; + maldizer_V = mkV (dizer_Besch "maldizer") ; + predizer_V = mkV (dizer_Besch "predizer") ; + doer_V = mkV (doer_Besch "doer") ; + dormir_V = mkV (dormir_Besch "dormir") ; + cobrir_V = mkV (dormir_Besch "cobrir") ; + descobrir_V = mkV (dormir_Besch "descobrir") ; + encobrir_V = mkV (dormir_Besch "encobrir") ; + recobrir_V = mkV (dormir_Besch "recobrir") ; + explodir_V = mkV (dormir_Besch "explodir") ; + engolir_V = mkV (dormir_Besch "engolir") ; + tossir_V = mkV (dormir_Besch "tossir") ; + erguer_V = mkV (erguer_Besch "erguer") ; + soerguer_V = mkV (erguer_Besch "soerguer") ; + estar_V = mkV (estar_Besch "estar") ; + extinguir_V = mkV (extinguir_Besch "extinguir") ; + falir_V = mkV (falir_Besch "falir") ; + aguerrir_V = mkV (falir_Besch "aguerrir") ; + combalir_V = mkV (falir_Besch "combalir") ; + desflorir_V = mkV (falir_Besch "desflorir") ; + florir_V = mkV (falir_Besch "florir") ; + reflorir_V = mkV (falir_Besch "reflorir") ; + renhir_V = mkV (falir_Besch "renhir") ; + fazer_V = mkV (fazer_Besch "fazer") ; + afazer_V = mkV (fazer_Besch "afazer") ; + contrafazer_V = mkV (fazer_Besch "contrafazer") ; + desfazer_V = mkV (fazer_Besch "desfazer") ; + liquefazer_V = mkV (fazer_Besch "liquefazer") ; + perfazer_V = mkV (fazer_Besch "perfazer") ; + rarefazer_V = mkV (fazer_Besch "rarefazer") ; + refazer_V = mkV (fazer_Besch "refazer") ; + satisfazer_V = mkV (fazer_Besch "satisfazer") ; + ficar_V = mkV (ficar_Besch "ficar") ; + frigir_V = mkV (frigir_Besch "frigir") ; + fugir_V = mkV (fugir_Besch "fugir") ; + garantir_V = mkV (garantir_Besch "garantir") ; + haver_V = mkV (haver_Besch "haver") ; + abolir_V = mkV (imergir_Besch "abolir") ; + banir_V = mkV (imergir_Besch "banir") ; + brandir_V = mkV (imergir_Besch "brandir") ; + brunir_V = mkV (imergir_Besch "brunir") ; + emergir_V = mkV (imergir_Besch "emergir") ; + empedernir_V = mkV (imergir_Besch "empedernir") ; + exaurir_V = mkV (imergir_Besch "exaurir") ; + extorquir_V = mkV (imergir_Besch "extorquir") ; + fremir_V = mkV (imergir_Besch "fremir") ; + fulgir_V = mkV (imergir_Besch "fulgir") ; + jungir_V = mkV (imergir_Besch "jungir") ; + retorquir_V = mkV (imergir_Besch "retorquir") ; + submergir_V = mkV (imergir_Besch "submergir") ; + ungir_V = mkV (imergir_Besch "ungir") ; + colorir_V = mkV (imergir_Besch "colorir") ; + demolir_V = mkV (imergir_Besch "demolir") ; + ir_V = mkV (ir_Besch "ir") ; + jazer_V = mkV (jazer_Besch "jazer") ; + ler_V = mkV (ler_Besch "ler") ; + reler_V = mkV (ler_Besch "reler") ; + tresler_V = mkV (ler_Besch "tresler") ; + moer_V = mkV (moer_Besch "moer") ; + roer_V = mkV (moer_Besch "roer") ; + neviscar_V = mkV (neviscar_Besch "neviscar") ; + odiar_V = mkV (odiar_Besch "odiar") ; + ansiar_V = mkV (odiar_Besch "ansiar") ; + incendiar_V = mkV (odiar_Besch "incendiar") ; + mediar_V = mkV (odiar_Besch "mediar") ; + remediar_V = mkV (odiar_Besch "remediar") ; + ouvir_V = mkV (ouvir_Besch "ouvir") ; + pedir_V = mkV (pedir_Besch "pedir") ; + despedir_V = mkV (pedir_Besch "despedir") ; + expedir_V = mkV (pedir_Besch "expedir") ; + reexpedir_V = mkV (pedir_Besch "reexpedir") ; + impedir_V = mkV (pedir_Besch "impedir") ; + desimpedir_V = mkV (pedir_Besch "desimpedir") ; + medir_V = mkV (pedir_Besch "medir") ; + perder_V = mkV (perder_Besch "perder") ; + perdoar_V = mkV (perdoar_Besch "perdoar") ; + abalroar_V = mkV (perdoar_Besch "abalroar") ; + abençoar_V = mkV (perdoar_Besch "abençoar") ; + amaldiçoar_V = mkV (perdoar_Besch "amaldiçoar") ; + aperfeiçoar_V = mkV (perdoar_Besch "aperfeiçoar") ; + apregoar_V = mkV (perdoar_Besch "apregoar") ; + coar_V = mkV (perdoar_Besch "coar") ; + doar_V = mkV (perdoar_Besch "doar") ; + entoar_V = mkV (perdoar_Besch "entoar") ; + esboroar_V = mkV (perdoar_Besch "esboroar") ; + povoar_V = mkV (perdoar_Besch "povoar") ; + soar_V = mkV (perdoar_Besch "soar") ; + toar_V = mkV (perdoar_Besch "toar") ; + voar_V = mkV (perdoar_Besch "voar") ; + poder_V = mkV (poder_Besch "poder") ; + polir_V = mkV (polir_Besch "polir") ; + pôr_V = mkV (pôr_Besch "pôr") ; + apor_V = mkV (pôr_Besch "apor") ; + compor_V = mkV (pôr_Besch "compor") ; + contrapor_V = mkV (pôr_Besch "contrapor") ; + decompor_V = mkV (pôr_Besch "decompor") ; + descompor_V = mkV (pôr_Besch "descompor") ; + dispor_V = mkV (pôr_Besch "dispor") ; + expor_V = mkV (pôr_Besch "expor") ; + impor_V = mkV (pôr_Besch "impor") ; + opor_V = mkV (pôr_Besch "opor") ; + propor_V = mkV (pôr_Besch "propor") ; + repor_V = mkV (pôr_Besch "repor") ; + supor_V = mkV (pôr_Besch "supor") ; + prazer_V = mkV (prazer_Besch "prazer") ; + precaver_V = mkV (precaver_Besch "precaver") ; + preferir_V = mkV (preferir_Besch "preferir") ; + aderir_V = mkV (preferir_Besch "aderir") ; + aferir_V = mkV (preferir_Besch "aferir") ; + conferir_V = mkV (preferir_Besch "conferir") ; + deferir_V = mkV (preferir_Besch "deferir") ; + diferir_V = mkV (preferir_Besch "diferir") ; + digerir_V = mkV (preferir_Besch "digerir") ; + ferir_V = mkV (preferir_Besch "ferir") ; + inferir_V = mkV (preferir_Besch "inferir") ; + inserir_V = mkV (preferir_Besch "inserir") ; + proferir_V = mkV (preferir_Besch "proferir") ; + referir_V = mkV (preferir_Besch "referir") ; + repelir_V = mkV (preferir_Besch "repelir") ; + repetir_V = mkV (preferir_Besch "repetir") ; + sugerir_V = mkV (preferir_Besch "sugerir") ; + transferir_V = mkV (preferir_Besch "transferir") ; + proibir_V = mkV (proibir_Besch "proibir") ; + coibir_V = mkV (proibir_Besch "coibir") ; + proteger_V = mkV (proteger_Besch "proteger") ; + eleger_V = mkV (proteger_Besch "eleger") ; + reger_V = mkV (proteger_Besch "reger") ; + prover_V = mkV (prover_Besch "prover") ; + querer_V = mkV (querer_Besch "querer") ; + reaver_V = mkV (reaver_Besch "reaver") ; + recear_V = mkV (recear_Besch "recear") ; + acarear_V = mkV (recear_Besch "acarear") ; + afear_V = mkV (recear_Besch "afear") ; + altear_V = mkV (recear_Besch "altear") ; + apear_V = mkV (recear_Besch "apear") ; + arquear_V = mkV (recear_Besch "arquear") ; + asnear_V = mkV (recear_Besch "asnear") ; + costear_V = mkV (recear_Besch "costear") ; + custear_V = mkV (recear_Besch "custear") ; + enfrear_V = mkV (recear_Besch "enfrear") ; + frear_V = mkV (recear_Besch "frear") ; + olear_V = mkV (recear_Besch "olear") ; + passear_V = mkV (recear_Besch "passear") ; + pear_V = mkV (recear_Besch "pear") ; + pentear_V = mkV (recear_Besch "pentear") ; + pratear_V = mkV (recear_Besch "pratear") ; + presentear_V = mkV (recear_Besch "presentear") ; + recrear_V = mkV (recear_Besch "recrear") ; + saborear_V = mkV (recear_Besch "saborear") ; + sofrear_V = mkV (recear_Besch "sofrear") ; + redigir_V = mkV (redigir_Besch "redigir") ; + afligir_V = mkV (redigir_Besch "afligir") ; + agir_V = mkV (redigir_Besch "agir") ; + coligir_V = mkV (redigir_Besch "coligir") ; + corrigir_V = mkV (redigir_Besch "corrigir") ; + erigir_V = mkV (redigir_Besch "erigir") ; + exigir_V = mkV (redigir_Besch "exigir") ; + fingir_V = mkV (redigir_Besch "fingir") ; + frangir_V = mkV (redigir_Besch "frangir") ; + infligir_V = mkV (redigir_Besch "infligir") ; + transigir_V = mkV (redigir_Besch "transigir") ; + refletir_V = mkV (refletir_Besch "refletir") ; + fletir_V = mkV (refletir_Besch "fletir") ; + defletir_V = mkV (refletir_Besch "defletir") ; + infletir_V = mkV (refletir_Besch "infletir") ; + remir_V = mkV (remir_Besch "remir") ; + requerer_V = mkV (requerer_Besch "requerer") ; + reunir_V = mkV (reunir_Besch "reunir") ; + rir_V = mkV (rir_Besch "rir") ; + sorrir_V = mkV (rir_Besch "sorrir") ; + saber_V = mkV (saber_Besch "saber") ; + dessaber_V = mkV (saber_Besch "dessaber") ; + sair_V = mkV (sair_Besch "sair") ; + cair_V = mkV (sair_Besch "cair") ; + decair_V = mkV (sair_Besch "decair") ; + descair_V = mkV (sair_Besch "descair") ; + recair_V = mkV (sair_Besch "recair") ; + trair_V = mkV (sair_Besch "trair") ; + atrair_V = mkV (sair_Besch "atrair") ; + contrair_V = mkV (sair_Besch "contrair") ; + distrair_V = mkV (sair_Besch "distrair") ; + extrair_V = mkV (sair_Besch "extrair") ; + protrair_V = mkV (sair_Besch "protrair") ; + retrair_V = mkV (sair_Besch "retrair") ; + subtrair_V = mkV (sair_Besch "subtrair") ; + saudar_V = mkV (saudar_Besch "saudar") ; + seguir_V = mkV (seguir_Besch "seguir") ; + conseguir_V = mkV (seguir_Besch "conseguir") ; + perseguir_V = mkV (seguir_Besch "perseguir") ; + prosseguir_V = mkV (seguir_Besch "prosseguir") ; + sentir_V = mkV (sentir_Besch "sentir") ; + assentir_V = mkV (sentir_Besch "assentir") ; + consentir_V = mkV (sentir_Besch "consentir") ; + pressentir_V = mkV (sentir_Besch "pressentir") ; + ressentir_V = mkV (sentir_Besch "ressentir") ; + mentir_V = mkV (sentir_Besch "mentir") ; + desmentir_V = mkV (sentir_Besch "desmentir") ; + ser_V = mkV (ser_Besch "ser") ; + servir_V = mkV (servir_Besch "servir") ; + concernir_V = mkV (servir_Besch "concernir") ; + discernir_V = mkV (servir_Besch "discernir") ; + cerzir_V = mkV (servir_Besch "cerzir") ; + despir_V = mkV (servir_Besch "despir") ; + vestir_V = mkV (servir_Besch "vestir") ; + investir_V = mkV (servir_Besch "investir") ; + revestir_V = mkV (servir_Besch "revestir") ; + ter_V = mkV (ter_Besch "ter") ; + conter_V = mkV (ter_Besch "conter") ; + deter_V = mkV (ter_Besch "deter") ; + entreter_V = mkV (ter_Besch "entreter") ; + reter_V = mkV (ter_Besch "reter") ; + suster_V = mkV (ter_Besch "suster") ; + traduzir_V = mkV (traduzir_Besch "traduzir") ; + abduzir_V = mkV (traduzir_Besch "abduzir") ; + aduzir_V = mkV (traduzir_Besch "aduzir") ; + conduzir_V = mkV (traduzir_Besch "conduzir") ; + deduzir_V = mkV (traduzir_Besch "deduzir") ; + induzir_V = mkV (traduzir_Besch "induzir") ; + introduzir_V = mkV (traduzir_Besch "introduzir") ; + luzir_V = mkV (traduzir_Besch "luzir") ; + perluzir_V = mkV (traduzir_Besch "perluzir") ; + produzir_V = mkV (traduzir_Besch "produzir") ; + reduzir_V = mkV (traduzir_Besch "reduzir") ; + reluzir_V = mkV (traduzir_Besch "reluzir") ; + seduzir_V = mkV (traduzir_Besch "seduzir") ; + trazer_V = mkV (trazer_Besch "trazer") ; + valer_V = mkV (valer_Besch "valer") ; + desvaler_V = mkV (valer_Besch "desvaler") ; + equivaler_V = mkV (valer_Besch "equivaler") ; + vender_V = mkV (vender_Besch "vender") ; + ver_V = mkV (ver_Besch "ver") ; + antever_V = mkV (ver_Besch "antever") ; + entrever_V = mkV (ver_Besch "entrever") ; + prever_V = mkV (ver_Besch "prever") ; + rever_V = mkV (ver_Besch "rever") ; + vir_V = mkV (vir_Besch "vir") ; + advir_V = mkV (vir_Besch "advir") ; + convir_V = mkV (vir_Besch "convir") ; + desavir_V = mkV (vir_Besch "desavir") ; + intervir_V = mkV (vir_Besch "intervir") ; + porvir_V = mkV (vir_Besch "porvir") ; + sobrevir_V = mkV (vir_Besch "sobrevir") ; + +} ; \ No newline at end of file diff --git a/src/portuguese/IrregBeschPorAbs.gf b/src/portuguese/IrregBeschPorAbs.gf new file mode 100644 index 000000000..54a270eac --- /dev/null +++ b/src/portuguese/IrregBeschPorAbs.gf @@ -0,0 +1,354 @@ +--# -path=.:../romance:../common:../abstract:../prelude + +abstract IrregBeschPorAbs = Cat ** { + flags coding=utf8 ; + +-- machine-generated file: do not edit directly! + + fun + acontecer_V : V ; + acudir_V : V ; + bulir_V : V ; + cuspir_V : V ; + sacudir_V : V ; + subir_V : V ; + sumir_V : V ; + consumir_V : V ; + adequar_V : V ; + agredir_V : V ; + denegrir_V : V ; + prevenir_V : V ; + progredir_V : V ; + transgredir_V : V ; + anunciar_V : V ; + abreviar_V : V ; + acariciar_V : V ; + afiar_V : V ; + aliviar_V : V ; + apreciar_V : V ; + assobiar_V : V ; + avaliar_V : V ; + avariar_V : V ; + criar_V : V ; + denunciar_V : V ; + desviar_V : V ; + enfiar_V : V ; + enviar_V : V ; + iniciar_V : V ; + principiar_V : V ; + pronunciar_V : V ; + renunciar_V : V ; + aprazer_V : V ; + desprazer_V : V ; + aquecer_V : V ; + agradecer_V : V ; + amarelecer_V : V ; + amolecer_V : V ; + arrefecer_V : V ; + empecer_V : V ; + entretecer_V : V ; + entristecer_V : V ; + escurecer_V : V ; + estremecer_V : V ; + favorecer_V : V ; + merecer_V : V ; + oferecer_V : V ; + parecer_V : V ; + perecer_V : V ; + reverdecer_V : V ; + tecer_V : V ; + arguir_V : V ; + redarguir_V : V ; + averiguar_V : V ; + aguar_V : V ; + apaniguar_V : V ; + apaziguar_V : V ; + apropinquar_V : V ; + deliquar_V : V ; + desaguar_V : V ; + enxaguar_V : V ; + obliquar_V : V ; + caber_V : V ; + chegar_V : V ; + chover_V : V ; + começar_V : V ; + comerciar_V : V ; + agenciar_V : V ; + licenciar_V : V ; + negociar_V : V ; + obsequiar_V : V ; + premiar_V : V ; + providenciar_V : V ; + sentenciar_V : V ; + silenciar_V : V ; + comprar_V : V ; + crer_V : V ; + descrer_V : V ; + dar_V : V ; + destruir_V : V ; + construir_V : V ; + reconstruir_V : V ; + distribuir_V : V ; + imbuir_V : V ; + afluir_V : V ; + confluir_V : V ; + fluir_V : V ; + influir_V : V ; + refluir_V : V ; + atribuir_V : V ; + contribuir_V : V ; + retribuir_V : V ; + instituir_V : V ; + restituir_V : V ; + substituir_V : V ; + divergir_V : V ; + aspergir_V : V ; + convergir_V : V ; + dizer_V : V ; + bendizer_V : V ; + condizer_V : V ; + contradizer_V : V ; + desdizer_V : V ; + maldizer_V : V ; + predizer_V : V ; + doer_V : V ; + dormir_V : V ; + cobrir_V : V ; + descobrir_V : V ; + encobrir_V : V ; + recobrir_V : V ; + explodir_V : V ; + engolir_V : V ; + tossir_V : V ; + erguer_V : V ; + soerguer_V : V ; + estar_V : V ; + extinguir_V : V ; + falir_V : V ; + aguerrir_V : V ; + combalir_V : V ; + desflorir_V : V ; + florir_V : V ; + reflorir_V : V ; + renhir_V : V ; + fazer_V : V ; + afazer_V : V ; + contrafazer_V : V ; + desfazer_V : V ; + liquefazer_V : V ; + perfazer_V : V ; + rarefazer_V : V ; + refazer_V : V ; + satisfazer_V : V ; + ficar_V : V ; + frigir_V : V ; + fugir_V : V ; + garantir_V : V ; + haver_V : V ; + abolir_V : V ; + banir_V : V ; + brandir_V : V ; + brunir_V : V ; + emergir_V : V ; + empedernir_V : V ; + exaurir_V : V ; + extorquir_V : V ; + fremir_V : V ; + fulgir_V : V ; + jungir_V : V ; + retorquir_V : V ; + submergir_V : V ; + ungir_V : V ; + colorir_V : V ; + demolir_V : V ; + ir_V : V ; + jazer_V : V ; + ler_V : V ; + reler_V : V ; + tresler_V : V ; + moer_V : V ; + roer_V : V ; + neviscar_V : V ; + odiar_V : V ; + ansiar_V : V ; + incendiar_V : V ; + mediar_V : V ; + remediar_V : V ; + ouvir_V : V ; + pedir_V : V ; + despedir_V : V ; + expedir_V : V ; + reexpedir_V : V ; + impedir_V : V ; + desimpedir_V : V ; + medir_V : V ; + perder_V : V ; + perdoar_V : V ; + abalroar_V : V ; + abençoar_V : V ; + amaldiçoar_V : V ; + aperfeiçoar_V : V ; + apregoar_V : V ; + coar_V : V ; + doar_V : V ; + entoar_V : V ; + esboroar_V : V ; + povoar_V : V ; + soar_V : V ; + toar_V : V ; + voar_V : V ; + poder_V : V ; + polir_V : V ; + pôr_V : V ; + apor_V : V ; + compor_V : V ; + contrapor_V : V ; + decompor_V : V ; + descompor_V : V ; + dispor_V : V ; + expor_V : V ; + impor_V : V ; + opor_V : V ; + propor_V : V ; + repor_V : V ; + supor_V : V ; + prazer_V : V ; + precaver_V : V ; + preferir_V : V ; + aderir_V : V ; + aferir_V : V ; + conferir_V : V ; + deferir_V : V ; + diferir_V : V ; + digerir_V : V ; + ferir_V : V ; + inferir_V : V ; + inserir_V : V ; + proferir_V : V ; + referir_V : V ; + repelir_V : V ; + repetir_V : V ; + sugerir_V : V ; + transferir_V : V ; + proibir_V : V ; + coibir_V : V ; + proteger_V : V ; + eleger_V : V ; + reger_V : V ; + prover_V : V ; + querer_V : V ; + reaver_V : V ; + recear_V : V ; + acarear_V : V ; + afear_V : V ; + altear_V : V ; + apear_V : V ; + arquear_V : V ; + asnear_V : V ; + costear_V : V ; + custear_V : V ; + enfrear_V : V ; + frear_V : V ; + olear_V : V ; + passear_V : V ; + pear_V : V ; + pentear_V : V ; + pratear_V : V ; + presentear_V : V ; + recrear_V : V ; + saborear_V : V ; + sofrear_V : V ; + redigir_V : V ; + afligir_V : V ; + agir_V : V ; + coligir_V : V ; + corrigir_V : V ; + erigir_V : V ; + exigir_V : V ; + fingir_V : V ; + frangir_V : V ; + infligir_V : V ; + transigir_V : V ; + refletir_V : V ; + fletir_V : V ; + defletir_V : V ; + infletir_V : V ; + remir_V : V ; + requerer_V : V ; + reunir_V : V ; + rir_V : V ; + sorrir_V : V ; + saber_V : V ; + dessaber_V : V ; + sair_V : V ; + cair_V : V ; + decair_V : V ; + descair_V : V ; + recair_V : V ; + trair_V : V ; + atrair_V : V ; + contrair_V : V ; + distrair_V : V ; + extrair_V : V ; + protrair_V : V ; + retrair_V : V ; + subtrair_V : V ; + saudar_V : V ; + seguir_V : V ; + conseguir_V : V ; + perseguir_V : V ; + prosseguir_V : V ; + sentir_V : V ; + assentir_V : V ; + consentir_V : V ; + pressentir_V : V ; + ressentir_V : V ; + mentir_V : V ; + desmentir_V : V ; + ser_V : V ; + servir_V : V ; + concernir_V : V ; + discernir_V : V ; + cerzir_V : V ; + despir_V : V ; + vestir_V : V ; + investir_V : V ; + revestir_V : V ; + ter_V : V ; + conter_V : V ; + deter_V : V ; + entreter_V : V ; + reter_V : V ; + suster_V : V ; + traduzir_V : V ; + abduzir_V : V ; + aduzir_V : V ; + conduzir_V : V ; + deduzir_V : V ; + induzir_V : V ; + introduzir_V : V ; + luzir_V : V ; + perluzir_V : V ; + produzir_V : V ; + reduzir_V : V ; + reluzir_V : V ; + seduzir_V : V ; + trazer_V : V ; + valer_V : V ; + desvaler_V : V ; + equivaler_V : V ; + vender_V : V ; + ver_V : V ; + antever_V : V ; + entrever_V : V ; + prever_V : V ; + rever_V : V ; + vir_V : V ; + advir_V : V ; + convir_V : V ; + desavir_V : V ; + intervir_V : V ; + porvir_V : V ; + sobrevir_V : V ; + +} ; \ No newline at end of file diff --git a/src/portuguese/IrregPor.gf b/src/portuguese/IrregPor.gf index 82cf0d562..71ba38dfd 100644 --- a/src/portuguese/IrregPor.gf +++ b/src/portuguese/IrregPor.gf @@ -1,14 +1,9 @@ --# -path=.:../romance:../abstract:../common:../prelude --- machine-generated GF file from Andersson & Söderberg's MSc work - concrete IrregPor of IrregPorAbs = CatPor ** - open (C=CommonRomance), ParadigmsPor, BeschPor in { + open ParadigmsPor, BeschPor in { flags optimize=values ; coding=utf8 ; - lin estar_V = mkV (estar_10 "estar") ; - lin fazer_V = mkV (fazer_31 "fazer") ; - } diff --git a/src/portuguese/IrregPorAbs.gf b/src/portuguese/IrregPorAbs.gf index c3a38b68e..1069d9d0a 100644 --- a/src/portuguese/IrregPorAbs.gf +++ b/src/portuguese/IrregPorAbs.gf @@ -1,6 +1,4 @@ abstract IrregPorAbs = Cat ** { flags coding=utf8 ; - fun estar_V : V ; - fun fazer_V : V ; } diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index f985f61e9..ae24864a1 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -295,43 +295,33 @@ oper z = Predef.dp 1 (Predef.tk 2 v) ; -- i in -iar paradigm = case xr of { "ir" => case z of { - "g" => redigir_52 ; - "a" => sair_68 ; - "u" => distribuir_73 ; - _ => garantir_6 + "g" => redigir_Besch ; + "a" => sair_Besch ; + "u" => distribuir_Besch ; + _ => garantir_Besch } ; "er" => case z of { - "c" => aquecer_25 ; - "g" => proteger_26 ; - "o" => moer_28 ; - _ => vender_5 + "c" => aquecer_Besch ; + "g" => proteger_Besch ; + "o" => moer_Besch ; + _ => vender_Besch } ; "ar" => case z of { - "c" => ficar_12 ; - "ç" => começar_13 ; - "e" => recear_15 ; - "g" => chegar_14 ; - "i" => anunciar_16 ; - "j" => viajar_r22 ; - "o" => perdoar_20 ; - "u" => suar_r37 ; - _ => comprar_4 + "c" => ficar_Besch ; + "ç" => começar_Besch ; + "e" => recear_Besch ; + "g" => chegar_Besch ; + "i" => anunciar_Besch ; + "j" => viajar_Besch ; + "o" => perdoar_Besch ; + "u" => suar_Besch ; + _ => comprar_Besch } ; - "or" | "ôr" => pôr_45 ; - _ => comprar_4 -- hole + "or" | "ôr" => pôr_Besch ; + _ => comprar_Besch -- hole } in verboV (paradigm v) ; -{- regAltV : (mostrar,muestro : Str) -> V ; - regAltV x y = case x of { - _ + "ar" => verboV (regAlternV x y) ; - _ => verboV (regAlternVEr x y) - } ; --} - verboV : Verbum -> V ; - verboV ve = verbBesch ve ** {vtyp = VHabere ; p = [] ; - lock_V = <>} ; - mkV = overload { --- [ ] update -- Regular verbs are ones inflected like "cortar", "dever", or diff --git a/src/portuguese/StructuralPor.gf b/src/portuguese/StructuralPor.gf index 67d705012..8a8c47466 100644 --- a/src/portuguese/StructuralPor.gf +++ b/src/portuguese/StructuralPor.gf @@ -1,6 +1,7 @@ concrete StructuralPor of Structural = CatPor ** open PhonoPor, MorphoPor, ParadigmsPor, BeschPor, - MakeStructuralPor, (X = ConstructX), Prelude in { + MakeStructuralPor, (X = ConstructX), (B=IrregBeschPor) + , Prelude in { flags optimize=all ; coding=utf8 ; @@ -63,8 +64,8 @@ concrete StructuralPor of Structural = CatPor ** but_PConj = ss "mas" ; by8agent_Prep = mkPrep "por" ; by8means_Prep = mkPrep "por" ; - can8know_VV = mkVV (mkV (saber_35 "saber")) ; - can_VV = mkVV (mkV (poder_36 "poder")) ; + can8know_VV = mkVV B.saber_V ; + can_VV = mkVV B.poder_V ; during_Prep = mkPrep "durante" ; either7or_DConj = {s1,s2 = "ou" ; n = Sg} ; everybody_NP = makeNP ["todos"] Masc Pl ; @@ -138,7 +139,7 @@ concrete StructuralPor of Structural = CatPor ** to_Prep = complDat ; under_Prep = mkPrep "embaixo" ; very_AdA = ss "muito" ; - want_VV = mkVV (mkV (querer_38 "querer")) ; + want_VV = mkVV B.querer_V ; whatSg_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Sg} ; whatPl_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Pl} ; --- when_IAdv = ss "quando" ; @@ -162,7 +163,7 @@ concrete StructuralPor of Structural = CatPor ** lin as_CAdv = X.mkCAdv "tão" conjThan ; ---- - have_V2 = dirV2 (mkV (ter_1 "ter")) ; + have_V2 = dirV2 B.ter_V ; that_Subj = {s = "que" ; m = Conjunct} ; lin language_title_Utt = ss "português" ; From a29c6226956cb3f8f17a94d066da5cef3fb7ae04 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 23 May 2018 19:15:35 -0300 Subject: [PATCH 09/11] (Por) update functions to use new Irreg suffix and resolve name conflicts --- src/portuguese/IdiomPor.gf | 8 ++++---- src/portuguese/LexiconPor.gf | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/portuguese/IdiomPor.gf b/src/portuguese/IdiomPor.gf index 90e26b36e..39b99578f 100644 --- a/src/portuguese/IdiomPor.gf +++ b/src/portuguese/IdiomPor.gf @@ -1,5 +1,5 @@ concrete IdiomPor of Idiom = CatPor ** - open (P = ParamX), MorphoPor, ParadigmsPor, BeschPor, IrregBeschPor, Prelude in { + open (P = ParamX), MorphoPor, ParadigmsPor, BeschPor, (B = IrregBeschPor), Prelude in { flags optimize=all_subs ; @@ -20,11 +20,11 @@ concrete IdiomPor of Idiom = CatPor ** ExistNP np = mkClause [] True False (agrP3 Masc Sg) - (insertComplement (\\_ => (np.s ! Acc).ton) (predV haver_V)) ; + (insertComplement (\\_ => (np.s ! Acc).ton) (predV B.haver_V)) ; ExistIP ip = { s = \\t,a,p,_ => ip.s ! Nom ++ - (mkClause [] True False (agrP3 Masc Sg) (predV haver_V)).s ! DDir ! t ! a ! p ! Indic + (mkClause [] True False (agrP3 Masc Sg) (predV B.haver_V)).s ! DDir ! t ! a ! p ! Indic } ; ProgrVP vp = @@ -36,7 +36,7 @@ concrete IdiomPor of Idiom = CatPor ** in vp.s.s ! VGer ++ clpr.p1 ++ obj ) - (predV estar_V) ; + (predV B.estar_V) ; ImpPl1 vp = {s = mkImperative False P1 vp ! RPos ! Masc ! Pl ; --- fem diff --git a/src/portuguese/LexiconPor.gf b/src/portuguese/LexiconPor.gf index 8891dcc87..32eefe2b8 100644 --- a/src/portuguese/LexiconPor.gf +++ b/src/portuguese/LexiconPor.gf @@ -255,7 +255,7 @@ lin john_PN = mkPN "João" masculine ; paris_PN = mkPN "Paris" feminine ; -- V - rain_V0 = mkV0 (mkV (chover_47 "chover")) ; + rain_V0 = mkV0 (mkV (chover_Besch "chover")) ; paint_V2A = mkV2A (mkV "pintar") accusative (mkPrep "em") ; ask_V2Q = mkV2Q (mkV "perguntar") dative ; answer_V2S = mkV2S (mkV "responder") dative ; @@ -266,17 +266,17 @@ lin close_V2 = dirV2 (mkV "fechar") ; count_V2 = dirV2 (mkV "contar") ; cut_V2 = dirV2 (mkV "cortar") ; - do_V2 = dirV2 (mkV (fazer_31 "fazer")) ; + do_V2 = dirV2 (mkV (fazer_Besch "fazer")) ; drink_V2 = dirV2 (mkV "beber") ; eat_V2 = dirV2 (mkV "comer") ; fear_V2 = dirV2 (mkV "temer") ; fight_V2 = dirV2 (mkV "lutar") ; find_V2 = dirV2 (mkV "encontrar") ; forget_V2 = dirV2 (mkV "esquecer") ; - hate_V2 = dirV2 (mkV (odiar_17 "odiar")) ; + hate_V2 = dirV2 (mkV (odiar_Besch "odiar")) ; hear_V2 = dirV2 (mkV "ouvir") ; hit_V2 = dirV2 (mkV "bater") ; - hold_V2 = dirV2 (mkV (ter_1 "ter")) ; + hold_V2 = dirV2 (mkV (ter_Besch "ter")) ; hunt_V2 = dirV2 (mkV "caçar") ; kill_V2 = dirV2 (mkV "matar") ; know_V2 = mkV2 (mkV "conhecer") ; @@ -284,17 +284,17 @@ lin leave_V2 = dirV2 (mkV "partir") ; like_V2 = mkV2 (mkV "gostar") genitive ; listen_V2 = dirV2 (mkV "escutar") ; - lose_V2 = dirV2 (mkV (perder_44 "perder")) ; + lose_V2 = dirV2 (mkV (perder_Besch "perder")) ; love_V2 = dirV2 (mkV "amar") ; open_V2 = dirV2 (special_ppV (mkV "abrir") "aberto") ; play_V2 = dirV2 (mkV "jogar") ; pull_V2 = dirV2 (mkV "tirar") ; push_V2 = dirV2 (mkV "empurrar") ; - put_V2 = dirV2 (mkV (pôr_45 "pôr")) ; - read_V2 = dirV2 (mkV (ler_42 "ler")) ; + put_V2 = dirV2 (mkV (pôr_Besch "pôr")) ; + read_V2 = dirV2 (mkV (ler_Besch "ler")) ; rub_V2 = dirV2 (mkV "esfregar") ; scratch_V2 = dirV2 (mkV "coçar") ; - see_V2 = dirV2 (mkV (ver_40 "ver")) ; + see_V2 = dirV2 (mkV (ver_Besch "ver")) ; seek_V2 = dirV2 (mkV "buscar") ; speak_V2 = dirV2 (mkV "falar") ; split_V2 = dirV2 (mkV "separar") ; -- dividir,) ; @@ -314,7 +314,7 @@ lin wipe_V2 = dirV2 (mkV "remover") ; write_V2 = dirV2 (special_ppV (mkV "escrever") "escrito") ; add_V3 = dirV3 (mkV "somar") dative ; - give_V3 = dirdirV3 (mkV (dar_11 "dar")) ; + give_V3 = dirdirV3 (mkV (dar_Besch "dar")) ; sell_V3 = dirV3 (mkV "vender") dative ; send_V3 = dirV3 (mkV "enviar") dative ; -- mandar talk_V3 = mkV3 (mkV "falar") dative genitive ; @@ -329,7 +329,7 @@ lin blow_V = mkV "assoprar" ; breathe_V = mkV "respirar" ; burn_V = mkV "queimar" ; - come_V = mkV (vir_67 "vir") ; + come_V = mkV (vir_Besch "vir") ; die_V = mkV "morrer" ; dig_V = mkV "escavar" ; fall_V = mkV "cair" ; @@ -339,7 +339,7 @@ lin freeze_V = mkV "congelar" ; go_V = (mkV "ir") ; jump_V = mkV "saltar" ; - laugh_V = mkV (rir_69 "rir") ; + laugh_V = mkV (rir_Besch "rir") ; lie_V = reflV (mkV "mentir") ; live_V = mkV "viver" ; play_V = mkV "jogar" ; @@ -350,7 +350,7 @@ lin sleep_V = mkV "dormir" ; smell_V = mkV "cheirar" ; spit_V = mkV "cuspir" ; - stand_V = mkV (estar_10 "estar") ; ---- "estar de pé" ; + stand_V = mkV (estar_Besch "estar") ; ---- "estar de pé" ; stop_V = mkV "parar" ; swell_V = mkV "tragar" ; swim_V = mkV "nadar" ; From 67b526b4e7670a4b066b11bd6db0a24fc73779e6 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Mon, 4 Jun 2018 08:47:17 -0300 Subject: [PATCH 10/11] - add gennumforms to common romance - try to make preposition contraction - try to add detcn --- src/english/NounEng.gf | 2 +- src/portuguese/BeschPor.gf | 6 --- src/portuguese/DiffPor.gf | 41 ++++++++--------- src/portuguese/NounPor.gf | 30 ++++++++++++- src/portuguese/PhonoPor.gf | 11 ++++- src/romance/CommonRomance.gf | 18 +++++--- src/romance/ResRomance.gf | 87 ++++++++++++++++++------------------ 7 files changed, 114 insertions(+), 81 deletions(-) diff --git a/src/english/NounEng.gf b/src/english/NounEng.gf index 9fccab1df..702613067 100644 --- a/src/english/NounEng.gf +++ b/src/english/NounEng.gf @@ -3,7 +3,7 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in { flags optimize=all_subs ; lin - DetCN det cn = { + DetCN det cn = { s = \\c => det.s ++ cn.s ! det.n ! npcase2case c ; a = agrgP3 det.n cn.g } ; diff --git a/src/portuguese/BeschPor.gf b/src/portuguese/BeschPor.gf index 16fd305c9..8221897bb 100644 --- a/src/portuguese/BeschPor.gf +++ b/src/portuguese/BeschPor.gf @@ -59,12 +59,6 @@ oper } } ; - genNumForms : Str -> Str -> Str -> Str -> Gender => Number => Str ; - genNumForms ms fs mp fp = table { - Masc => \\n => numForms ms mp ! n ; - Fem => \\n => numForms fs fp ! n - } ; - mkPass : Str -> Gender => Number => Str ; -- passive form is highly predictable from singular masculine mkPass p' = let p = p' + [] in case p of { diff --git a/src/portuguese/DiffPor.gf b/src/portuguese/DiffPor.gf index 423540588..5cfcd7c65 100644 --- a/src/portuguese/DiffPor.gf +++ b/src/portuguese/DiffPor.gf @@ -6,7 +6,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo coding=utf8 ; param - Prepos = P_de | P_a ; + Prepos = P_de | P_a | P_em | P_por ; VType = VHabere | VRefl ; @@ -79,8 +79,11 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo estarCopula = True ; oper + -- the other Cases are defined in ResRomance dative : Case = CPrep P_a ; genitive : Case = CPrep P_de ; + locative : Case = CPrep P_em ; + ablative : Case = CPrep P_por ; oper vRefl _ = VRefl ; @@ -94,40 +97,32 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo Nom => [] ; Acc => [] ; CPrep P_de => "de" ; - CPrep P_a => "a" + CPrep P_a => "a" ; + CPrep P_em => "em" ; + CPrep P_por => "por" } ; oper partitive = \_,c -> prepCase c ; oper - artDef : Bool -> Gender -> Number -> Case -> Str = \isNP,g,n,c -> - case isNP of { - True => case of { - => prepCase c ++ "o" ; - => prepCase c ++ "a" ; ----- ?? - => prepCase c ++ "os" ; - => prepCase c ++ "as" - } ; - False => case of { - => "do" ; - => "ao" ; - => prepCase c ++ "o" ; - => "da" ; - => "à" ; - => prepCase c ++ "a" ; - => prepCase c ++ "os" ; - => prepCase c ++ "as" - } - } ; + artDef : Bool -> Gender -> Number -> Case -> Str ; + -- not sure if isNP is relevant + artDef _isNP g n c = case c of { + Nom | Acc => genNumForms "o" "a" "os" "as" ; + CPrep P_de => genNumForms "do" "da" "dos" "das" ; + CPrep P_a => genNumForms "ao" "à" "aos" "às" ; + CPrep P_em => genNumForms "no" "na" "nos" "nas" ; + CPrep P_por => genNumForms "pelo" "pela" "pelos" "pelas" + } ! g ! n ; artIndef = \isNP,g,n,c -> case isNP of { True => case n of { - Sg => prepCase c ++ genForms "um" "uma" ! g ; + Sg => prepCase c ++ genForms "um" "uma" ! g ; _ => prepCase c ++ genForms "uns" "umas" ! g } ; _ => case n of { - Sg => prepCase c ++ genForms "um" "uma" ! g ; + Sg => prepCase c ++ genForms "um" "uma" ! g ; _ => prepCase c } } ; diff --git a/src/portuguese/NounPor.gf b/src/portuguese/NounPor.gf index b1a1056f0..f7f92d7d2 100644 --- a/src/portuguese/NounPor.gf +++ b/src/portuguese/NounPor.gf @@ -1,2 +1,30 @@ concrete NounPor of Noun = CatPor ** NounRomance with - (ResRomance = ResPor) ; + (ResRomance = ResPor) ** open Prelude, PhonoPor in { + + lin + -- not implemented for romance languages, maybe because it can't + -- be done elegantly? + CountNP det np = heavyNPpol np.isNeg + {s = \\c => det.s ! np.a.g ! c ++ elisDe ++ (np.s ! c).ton ; + a = np.a ** {n = det.n} } ; + +} ; +{-- + NounPhrase : Type = { + s : Case => {c1,c2,comp,ton : Str} ; + a : Agr ; + hasClit : Bool ; + isPol : Bool ; --- only needed for French complement agr + isNeg : Bool --- needed for negative NP's such as "personne" + } ; + + Det = { + s : Gender => Case => Str ; + n : Number ; + s2 : Str ; -- -ci + sp : Gender => Case => Str ; -- substantival: mien, mienne + isNeg : Bool -- negative element, e.g. aucun + } ; + + Bool -> {s : Case => Str ; a : Agr} -> NounPhrase +--} \ No newline at end of file diff --git a/src/portuguese/PhonoPor.gf b/src/portuguese/PhonoPor.gf index 8bb52c4da..2a41d17e3 100644 --- a/src/portuguese/PhonoPor.gf +++ b/src/portuguese/PhonoPor.gf @@ -1,3 +1,12 @@ resource PhonoPor = open Prelude in { -} + oper + arts : pattern Str = #("o" | "os" | "a" | "as") ; + + elisDe : Str ; + elisDe = pre { + #arts => "d" ++ BIND ; + _ => "de" + } ; + +} ; diff --git a/src/romance/CommonRomance.gf b/src/romance/CommonRomance.gf index 36d722652..6620875bd 100644 --- a/src/romance/CommonRomance.gf +++ b/src/romance/CommonRomance.gf @@ -199,16 +199,22 @@ oper --- oper - genForms : Str -> Str -> Gender => Str = \bon,bonne -> - table { - Masc => bon ; - Fem => bonne + genForms : Str -> Str -> Gender => Str ; + genForms bon bonne = table { + Masc => bon ; + Fem => bonne } ; + numForms : (_,_ : Str) -> Number => Str ; -- The following macro is useful for creating the forms of -- number-dependent tables, such as common nouns. - numForms : (_,_ : Str) -> Number => Str = \campus, campi -> - table {Sg => campus ; Pl => campi} ; + numForms campus campi = table {Sg => campus ; Pl => campi} ; + + genNumForms : (_,_,_,_ : Str) -> Gender => Number => Str ; + genNumForms ms fs mp fp = table { + Masc => \\n => numForms ms mp ! n ; + Fem => \\n => numForms fs fp ! n + } ; aagrForms : (x1,_,_,x4 : Str) -> (AAgr => Str) = \tout,toute,tous,toutes -> table { diff --git a/src/romance/ResRomance.gf b/src/romance/ResRomance.gf index 5e928d786..9d08d4947 100644 --- a/src/romance/ResRomance.gf +++ b/src/romance/ResRomance.gf @@ -16,14 +16,15 @@ oper NounPhrase : Type = { s : Case => {c1,c2,comp,ton : Str} ; a : Agr ; - hasClit : Bool ; + hasClit : Bool ; isPol : Bool ; --- only needed for French complement agr isNeg : Bool --- needed for negative NP's such as "personne" } ; + Pronoun : Type = { s : Case => {c1,c2,comp,ton : Str} ; a : Agr ; - hasClit : Bool ; + hasClit : Bool ; isPol : Bool ; --- only needed for French complement agr poss : Number => Gender => Str ---- also: substantival } ; @@ -48,7 +49,7 @@ oper pn2npNeg : {s : Str ; g : Gender} -> NounPhrase = pn2npPol True ; pn2npPol : Bool -> {s : Str ; g : Gender} -> NounPhrase = \isNeg, pn -> heavyNPpol isNeg { - s = \\c => prepCase c ++ pn.s ; + s = \\c => prepCase c ++ pn.s ; a = agrP3 pn.g Sg } ; @@ -77,7 +78,7 @@ oper oper - predV : Verb -> VP = \verb -> + predV : Verb -> VP = \verb -> let typ = verb.vtyp ; in { @@ -87,12 +88,12 @@ oper clit1 = [] ; clit2 = [] ; clit3 = {s,imp = [] ; hasClit = False} ; --- refl is treated elsewhere - isNeg = False ; + isNeg = False ; comp = \\a => [] ; ext = \\p => [] } ; - insertObject : Compl -> NounPhrase -> VP -> VP = \c,np,vp -> + insertObject : Compl -> NounPhrase -> VP -> VP = \c,np,vp -> let obj = np.s ! c.c ; in { @@ -110,12 +111,12 @@ oper ext = vp.ext ; } ; - insertComplement : (Agr => Str) -> VP -> VP = \co,vp -> { + insertComplement : (Agr => Str) -> VP -> VP = \co,vp -> { s = vp.s ; agr = vp.agr ; - clit1 = vp.clit1 ; - clit2 = vp.clit2 ; - clit3 = vp.clit3 ; + clit1 = vp.clit1 ; + clit2 = vp.clit2 ; + clit3 = vp.clit3 ; isNeg = vp.isNeg ; --- can be in compl as well neg = vp.neg ; comp = \\a => vp.comp ! a ++ co ! a ; @@ -123,54 +124,54 @@ oper } ; --- Agreement with preceding relative or interrogative: +-- Agreement with preceding relative or interrogative: -- "les femmes que j'ai aimées" - insertAgr : AAgr -> VP -> VP = \ag,vp -> vp ** { + insertAgr : AAgr -> VP -> VP = \ag,vp -> vp ** { agr = vpAgrClits vp.s ag ; } ; - insertRefl : VP -> VP = \vp -> vp ** { + insertRefl : VP -> VP = \vp -> vp ** { s = vp.s ** {vtyp = vRefl vp.s.vtyp} ; agr = vpAgrSubj vp.s ; } ; - insertAdv : Str -> VP -> VP = \co,vp -> vp ** { - isNeg = vp.isNeg ; --- adv could be neg + insertAdv : Str -> VP -> VP = \co,vp -> vp ** { + isNeg = vp.isNeg ; --- adv could be neg comp = \\a => vp.comp ! a ++ co ; } ; - insertAdV : Str -> VP -> VP = \co,vp -> { + insertAdV : Str -> VP -> VP = \co,vp -> { s = vp.s ; agr = vp.agr ; - clit1 = vp.clit1 ; - clit2 = vp.clit2 ; + clit1 = vp.clit1 ; + clit2 = vp.clit2 ; clit3 = vp.clit3 ; - isNeg = vp.isNeg ; + isNeg = vp.isNeg ; neg = \\b => let vpn = vp.neg ! b in {p1 = vpn.p1 ; p2 = vpn.p2 ++ co} ; comp = vp.comp ; ext = vp.ext ; } ; - insertClit3 : Str -> VP -> VP = \co,vp -> { + insertClit3 : Str -> VP -> VP = \co,vp -> { s = vp.s ; agr = vp.agr ; - clit1 = vp.clit1 ; - clit2 = vp.clit2 ; + clit1 = vp.clit1 ; + clit2 = vp.clit2 ; clit3 = addClit3 True co vp.clit3.imp vp.clit3 ; - isNeg = vp.isNeg ; + isNeg = vp.isNeg ; neg = vp.neg ; comp = vp.comp ; ext = vp.ext ; } ; - insertExtrapos : (RPolarity => Str) -> VP -> VP = \co,vp -> { + insertExtrapos : (RPolarity => Str) -> VP -> VP = \co,vp -> { s = vp.s ; agr = vp.agr ; - clit1 = vp.clit1 ; - clit2 = vp.clit2 ; + clit1 = vp.clit1 ; + clit2 = vp.clit2 ; clit3 = vp.clit3 ; - isNeg = vp.isNeg ; + isNeg = vp.isNeg ; neg = vp.neg ; comp = vp.comp ; ext = \\p => vp.ext ! p ++ co ! p ; @@ -179,7 +180,7 @@ oper mkVPSlash : Compl -> VP -> VP ** {c2 : Compl} = \c,vp -> vp ** {c2 = c} ; Clause : Type = {s : Direct => RTense => Anteriority => RPolarity => Mood => Str} ; - + -- for pos/neg variation other than negation word, e.g. "il y a du vin" / "il n'y a pas de vin" posNegClause : Clause -> Clause -> RPolarity -> Clause = \pos,neg,pol -> { s = \\d,t,a,b,m => case b of { @@ -188,20 +189,20 @@ oper } } ; - mkClause : Str -> Bool -> Bool -> Agr -> VP -> + mkClause : Str -> Bool -> Bool -> Agr -> VP -> {s : Direct => RTense => Anteriority => RPolarity => Mood => Str} = mkClausePol False ; -- isNeg = True if subject NP is a negative element, e.g. "personne" - mkClausePol : Bool -> Str -> Bool -> Bool -> Agr -> VP -> + mkClausePol : Bool -> Str -> Bool -> Bool -> Agr -> VP -> {s : Direct => RTense => Anteriority => RPolarity => Mood => Str} = \isNeg, subj, hasClit, isPol, agr, vp -> { - s = \\d,te,a,b,m => + s = \\d,te,a,b,m => let pol : RPolarity = case of { - <_,True,RPos,_> => RNeg True ; - => RNeg True ; + <_,True,RPos,_> => RNeg True ; + => RNeg True ; => polNegDirSubj ; _ => b } ; @@ -223,7 +224,7 @@ oper vtyp = vp.s.vtyp ; refl = case isVRefl vtyp of { True => reflPron num per Acc ; ---- case ? - _ => [] + _ => [] } ; clit = refl ++ vp.clit1 ++ vp.clit2 ++ vp.clit3.s ; ---- refl first? @@ -237,7 +238,7 @@ oper } ; ---- part = case vp.agr of { ---- VPAgrSubj => verb ! VPart agr.g agr.n ; ----- VPAgrClit g n => verb ! VPart g n +---- VPAgrClit g n => verb ! VPart g n ---- } ; @@ -251,7 +252,7 @@ oper => ; --# notpresent => ; --# notpresent => ; --# notpresent - => + => } ; fin = vps.p1 ; @@ -261,14 +262,14 @@ oper in case d of { - DDir => + DDir => subj ++ neg.p1 ++ clit ++ fin ++ neg.p2 ++ inf ++ compl ++ ext ; - DInv => + DInv => invertedClause vp.s.vtyp hasClit neg hypt clit fin inf compl subj ext } } ; --- in French, pronouns +-- in French, pronouns -- have a "-" with possibly a special verb form with "t": -- "comment fera-t-il" vs. "comment fera Pierre" @@ -285,20 +286,20 @@ oper obj = vp.s.p ++ vp.comp ! agr ++ vp.ext ! RPos ; ---- pol refl = case isVRefl vp.s.vtyp of { True => reflPron agr.n agr.p Acc ; ---- case ? - _ => [] + _ => [] } ; in neg.p1 ++ neg.p2 ++ clitInf iform (refl ++ vp.clit1 ++ vp.clit2 ++ vp.clit3.s) inf ++ obj ; -- ne pas dormant - + } -- insertObject: -- p -cat=Cl -tr "la femme te l' envoie" --- PredVP (DetCN (DetSg DefSg NoOrd) (UseN woman_N)) +-- PredVP (DetCN (DetSg DefSg NoOrd) (UseN woman_N)) -- (ComplV3 send_V3 (UsePron he_Pron) (UsePron thou_Pron)) -- la femme te l' a envoyé -- -- p -cat=Cl -tr "la femme te lui envoie" --- PredVP (DetCN (DetSg DefSg NoOrd) (UseN woman_N)) +-- PredVP (DetCN (DetSg DefSg NoOrd) (UseN woman_N)) -- (ComplV3 send_V3 (UsePron thou_Pron) (UsePron he_Pron)) -- la femme te lui a envoyée From 49a405cdb26553dc1d4744fced99555fc84243bd Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 20 Jun 2018 12:31:36 -0300 Subject: [PATCH 11/11] (Por) change mkPrep paradigm - add Por to Make.hs - rm elisDe (PhonoPor) - change mkPrep paradigm, and make necessary changes - rm ParsePor --- src/Make.hs | 1 + src/portuguese/NounPor.gf | 21 +---- src/portuguese/ParadigmsPor.gf | 4 +- src/portuguese/ParsePor.gf | 157 -------------------------------- src/portuguese/PhonoPor.gf | 9 -- src/portuguese/StructuralPor.gf | 10 +- src/romance/AdverbRomance.gf | 2 + 7 files changed, 11 insertions(+), 193 deletions(-) delete mode 100644 src/portuguese/ParsePor.gf diff --git a/src/Make.hs b/src/Make.hs index b47f6a4f8..f08f19c63 100644 --- a/src/Make.hs +++ b/src/Make.hs @@ -55,6 +55,7 @@ langsCoding = [ (("norwegian","Nor"),"Scand"), (("persian", "Pes"),""), (("polish", "Pol"),""), + (("portuguese", "Por"), "Romance"), (("punjabi", "Pnb"),""), (("romanian", "Ron"),""), (("russian", "Rus"),""), diff --git a/src/portuguese/NounPor.gf b/src/portuguese/NounPor.gf index f7f92d7d2..ce18a6803 100644 --- a/src/portuguese/NounPor.gf +++ b/src/portuguese/NounPor.gf @@ -5,26 +5,7 @@ concrete NounPor of Noun = CatPor ** NounRomance with -- not implemented for romance languages, maybe because it can't -- be done elegantly? CountNP det np = heavyNPpol np.isNeg - {s = \\c => det.s ! np.a.g ! c ++ elisDe ++ (np.s ! c).ton ; + {s = \\c => det.s ! np.a.g ! c ++ (np.s ! c).ton ; a = np.a ** {n = det.n} } ; } ; -{-- - NounPhrase : Type = { - s : Case => {c1,c2,comp,ton : Str} ; - a : Agr ; - hasClit : Bool ; - isPol : Bool ; --- only needed for French complement agr - isNeg : Bool --- needed for negative NP's such as "personne" - } ; - - Det = { - s : Gender => Case => Str ; - n : Number ; - s2 : Str ; -- -ci - sp : Gender => Case => Str ; -- substantival: mien, mienne - isNeg : Bool -- negative element, e.g. aucun - } ; - - Bool -> {s : Case => Str ; a : Agr} -> NounPhrase ---} \ No newline at end of file diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index ae24864a1..2ce3f6b04 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -75,10 +75,10 @@ oper mkPrep = overload { mkPrep : Str -> Prep = -- other preposition \p -> {s = p ; c = Acc ; isDir = False ; lock_Prep = <>} ; - mkPrep : Str -> Prep -> Prep = + mkPrep : Str -> Case -> Prep = -- compound prepositions, e.g. "antes de", made as mkPrep -- "antes" genitive - \p,c -> {s = p ; c = c.c ; isDir = False ; lock_Prep = <>} + \p,c -> {s = p ; c = c ; isDir = False ; lock_Prep = <>} } ; diff --git a/src/portuguese/ParsePor.gf b/src/portuguese/ParsePor.gf deleted file mode 100644 index 5c3a6e0e3..000000000 --- a/src/portuguese/ParsePor.gf +++ /dev/null @@ -1,157 +0,0 @@ ---# -path=alltenses -concrete ParsePor of ParseEngAbs = - TensePor, --- CatPor, - NounPor - [PPartNP], - AdjectivePor, - NumeralPor, - SymbolPor [PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP], - ConjunctionPor, - VerbPor - [SlashV2V, PassV2, UseCopula, ComplVV], - AdverbPor, - PhrasePor, - SentencePor, - QuestionPor, - RelativePor, - IdiomPor [NP, VP, Tense, Cl, ProgrVP, ExistNP], - ExtraPor [NP, Quant, VPSlash, VP, Tense, GenNP, PassVPSlash, - Temp, Pol, Conj, VPS, ListVPS, S, Num, CN, RP, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, GenRP, - VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, - ClSlash, RCl, EmptyRelSlash], - - DictEngPor ** -open MorphoPor, ResPor, ParadigmsPor, SyntaxPor, Prelude in { - -flags - literal=Symb ; - coding = utf8 ; - - -lin --- missing from ExtraPor; should not really be there either - - GenNP np = - let denp = (np.s ! ResPor.genitive).ton in { - s = \\_,_,_,_ => [] ; - sp = \\_,_,_ => denp ; - s2 = denp ; - isNeg = False ; - } ; - - EmptyRelSlash slash = mkRCl which_RP (lin ClSlash slash) ; - - that_RP = which_RP ; - - UncNeg = negativePol ; - --- lexical entries - - another_Quant = mkQuantifier "outro" "outra" "outros" "outras" ; - some_Quant = mkQuantifier "algum" "alguma" "alguns" "algumas" ; - anySg_Det = mkDeterminer "algum" "alguma" Sg False ; ---- also meaning "whichever" ? - each_Det = SyntaxPor.every_Det ; - - but_Subj = {s = "mas" ; m = Indic} ; ---- strange to have this as Subj - -{- - myself_NP = regNP "myself" singular ; - yourselfSg_NP = regNP "yourself" singular ; - himself_NP = regNP "himself" singular ; - herself_NP = regNP "herself" singular ; - itself_NP = regNP "itself" singular ; - ourself_NP = regNP "ourself" plural ; - yourselfPl_NP = regNP "yourself" plural ; - themself_NP = regNP "themself" plural ; - themselves_NP = regNP "themselves" plural ; --} - - CompoundCN num noun cn = { - s = \\n => cn.s ! n ++ "de" ++ noun.s ! num.n ; - g = cn.g - } ; - -{- - DashCN noun1 noun2 = { - s = \\n,c => noun1.s ! Sg ! Nom ++ "-" ++ noun2.s ! n ! c ; - g = noun2.g - } ; - - GerundN v = { - s = \\n,c => v.s ! VPresPart ; - g = Neutr - } ; - - GerundAP v = { - s = \\agr => v.s ! VPresPart ; - isPre = True - } ; --} - - PastPartAP v = { - s = table { - AF g n => v.s ! VPart g n ; - _ => v.s ! VPart Masc Sg ---- the adverb form - } ; - isPre = True - } ; - -{- - OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ; --} - - PositAdVAdj a = {s = a.s ! Posit ! AA} ; - -{- - UseQuantPN q pn = {s = \\c => q.s ! False ! Sg ++ pn.s ! npcase2case c ; a = agrgP3 Sg pn.g} ; - - SlashV2V v ant p vp = insertObjc (\\a => v.c3 ++ ant.s ++ p.s ++ - infVP v.typ vp ant.a p.p a) - (predVc v) ; - - SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++ - v.c3 ++ - vpi.s ! VVAux ! a) - (predVc v) ; - ComplVV v a p vp = insertObj (\\agr => a.s ++ p.s ++ - infVP v.typ vp a.a p.p agr) - (predVV v) ; --} - ----- TODO: find proper expressions for OSV and OVS in Por - PredVPosv np vp = mkCl (lin NP np) (lin VP vp) ; - PredVPovs np vp = mkCl (lin NP np) (lin VP vp) ; - - - CompS s = {s = \\_ => "de" ++ "que" ++ s.s ! Indic} ; ---- de ? - -{- - CompQS qs = {s = \\_ => qs.s ! QIndir} ; - CompVP ant p vp = {s = \\a => ant.s ++ p.s ++ - infVP VVInf vp ant.a p.p a} ; - - VPSlashVS vs vp = - insertObj (\\a => infVP VVInf vp Simul CPos a) (predV vs) ** - {c2 = ""; gapInMiddle = False} ; - - PastPartRS ant pol vps = { - s = \\agr => vps.ad ++ vps.ptp ++ vps.s2 ! agr ; - c = npNom - } ; - - PresPartRS ant pol vp = { - s = \\agr => vp.ad ++ vp.prp ++ vp.s2 ! agr ; - c = npNom - } ; - - ApposNP np1 np2 = { - s = \\c => np1.s ! c ++ "," ++ np2.s ! npNom ; - a = np1.a - } ; - - AdAdV = cc2 ; - - UttAdV adv = adv; - --} - -} diff --git a/src/portuguese/PhonoPor.gf b/src/portuguese/PhonoPor.gf index 2a41d17e3..8717ffb7a 100644 --- a/src/portuguese/PhonoPor.gf +++ b/src/portuguese/PhonoPor.gf @@ -1,12 +1,3 @@ resource PhonoPor = open Prelude in { - oper - arts : pattern Str = #("o" | "os" | "a" | "as") ; - - elisDe : Str ; - elisDe = pre { - #arts => "d" ++ BIND ; - _ => "de" - } ; - } ; diff --git a/src/portuguese/StructuralPor.gf b/src/portuguese/StructuralPor.gf index 8a8c47466..d967961b3 100644 --- a/src/portuguese/StructuralPor.gf +++ b/src/portuguese/StructuralPor.gf @@ -1,5 +1,5 @@ concrete StructuralPor of Structural = CatPor ** - open PhonoPor, MorphoPor, ParadigmsPor, BeschPor, + open PhonoPor, MorphoPor, ParadigmsPor, BeschPor, DiffPor, MakeStructuralPor, (X = ConstructX), (B=IrregBeschPor) , Prelude in { @@ -62,8 +62,8 @@ concrete StructuralPor of Structural = CatPor ** between_Prep = mkPrep "entre" ; both7and_DConj = {s1,s2 = etConj.s ; n = Pl} ; but_PConj = ss "mas" ; - by8agent_Prep = mkPrep "por" ; - by8means_Prep = mkPrep "por" ; + by8agent_Prep = mkPrep [] ablative ; -- por + by8means_Prep = mkPrep [] ablative ; -- por can8know_VV = mkVV B.saber_V ; can_VV = mkVV B.poder_V ; during_Prep = mkPrep "durante" ; @@ -87,7 +87,7 @@ concrete StructuralPor of Structural = CatPor ** if_then_Conj = {s1 = "se" ; s2 = "então" ; n = Sg ; lock_Conj = <>} ; in8front_Prep = {s = "à frente" ; c = MorphoPor.genitive ; isDir = False} ; - in_Prep = mkPrep "em" ; + in_Prep = mkPrep [] locative ; less_CAdv = X.mkCAdv "menos" conjThan ; ---- many_Det = mkDeterminer "muitos" "muitas" Pl False ; @@ -134,7 +134,7 @@ concrete StructuralPor of Structural = CatPor ** therefore_PConj = ss ["por isso"] ; this_Quant = mkQuantifier "este" "esta" "estes" "estas" ; - through_Prep = mkPrep "por" ; + through_Prep = mkPrep [] ablative ; -- por too_AdA = ss "demasiado" ; -- o certo seria demais como postfix to_Prep = complDat ; under_Prep = mkPrep "embaixo" ; diff --git a/src/romance/AdverbRomance.gf b/src/romance/AdverbRomance.gf index 5f843330a..88a955414 100644 --- a/src/romance/AdverbRomance.gf +++ b/src/romance/AdverbRomance.gf @@ -5,9 +5,11 @@ incomplete concrete AdverbRomance of Adverb = PositAdvAdj a = { s = a.s ! Posit ! AA } ; + ComparAdvAdj cadv a np = { s = cadv.s ++ a.s ! Posit ! AA ++ cadv.p ++ (np.s ! Nom).ton } ; + ComparAdvAdjS cadv a s = { s = cadv.s ++ a.s ! Posit ! AA ++ cadv.p ++ s.s ! Conjunct --- ne } ;