From 9014d64b1792b779ebbdab9a93f5317bcbb73be7 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 11 Apr 2019 12:54:20 +0200 Subject: [PATCH 1/3] (Spa) Fix a few prepositions --- src/spanish/DictSpa.gf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spanish/DictSpa.gf b/src/spanish/DictSpa.gf index 39261bfcf..47f0d74ba 100644 --- a/src/spanish/DictSpa.gf +++ b/src/spanish/DictSpa.gf @@ -13259,7 +13259,7 @@ lin dentición_primaria_N = mkAN dentición_N "primaria" ; lin dentición_secundaria_N = mkAN dentición_N "secundaria" ; lin dentista_N = mkN "dentista" ; lin dentro_Adv = mkAdv "dentro" ; -lin dentro_de_Prep = mkPrep "dentro de" ; +lin dentro_de_Prep = mkPrep "dentro" genitive ; lin dentro_del_útero_Adv = mkAdv "dentro del útero" ; lin denturista_N = mkN "denturista" ; lin dentífrico_N = mkN "dentífrico" ; @@ -14305,7 +14305,7 @@ lin digitigrado_N = mkN "digitigrado" ; lin dignidad_N = mkN "dignidad" ; lin dignificar_V = mkV "dignificar" ; lin digno_A = mkA "digno" ; -lin digno_de_Prep = mkPrep "digno de" ; +lin digno_de_Prep = mkPrep "digno" genitive ; lin digoxina_N = mkN "digoxina" ; lin digresión_N = mkN "digresión" ; lin digénesis_N = mkN "digénesis" ; From 0ce6696bfadb82c1deb99a0e1c78bebcd2e4da99 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 11 Apr 2019 15:30:35 +0200 Subject: [PATCH 2/3] (Spa) add + fix some adjectives --- src/spanish/DictSpa.gf | 7 ++++--- src/spanish/DictSpaAbs.gf | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/spanish/DictSpa.gf b/src/spanish/DictSpa.gf index 47f0d74ba..03a177658 100644 --- a/src/spanish/DictSpa.gf +++ b/src/spanish/DictSpa.gf @@ -2726,7 +2726,7 @@ lin afuera_Adv = mkAdv "afuera" ; lin afueras_N = mkN "afueras" ; lin afán_N = mkN "afán" ; lin aféresis_N = mkN "aféresis" ; -lin afín_A = mkA "afín" ; +lin afín_A = mkA "afín" "afín" "afines" "afines" "afínmente" ; lin afín_N = mkN "afín" ; lin afónico_A = mkA "afónico" ; lin aga_N = mkN "aga" ; @@ -10182,6 +10182,7 @@ lin colmillo_N = mkN "colmillo" ; lin colmo_N = mkN "colmo" ; lin colocación_N = mkN "colocación" ; lin colocación_de_minas_N = mkN colocación_N "de minas" ; +lin colocado_A = mkA "colocado" ; lin colocar_V = mkV "colocar" ; lin colocar_burlete_V = mkV colocar_V "burlete" ; lin colocar_en_barracas_V = mkV colocar_V "en barracas" ; @@ -10567,7 +10568,7 @@ lin comunista_N = mkN "comunista" ; lin comunitario_A = mkA "comunitario" ; lin comunización_N = mkN "comunización" ; lin comunión_N = mkN "comunión" ; -lin común_A = mkA "común" ; +lin común_A = mkA "común" "común" "comunes" "comunes" "comúnmente" ; lin común_y_corriente_A = mkA "común y corriente" "común y corriente" ; lin con_admiracion_Adv = mkAdv "con admiracion" ; lin con_admiración_Adv = mkAdv "con admiración" ; @@ -26028,7 +26029,7 @@ lin marrasquino_N = mkN "marrasquino" ; lin marroquí_N = mkN "marroquí" ; lin marrubio_N = mkN "marrubio" ; lin marrubium_N = mkN "marrubium" ; -lin marrón_A = mkA "marrón" ; +lin marrón_A = mkA "marrón" "marrón" "marrones" "marrones" "marrónmente" ; lin marrón_N = mkN "marrón" ; lin marrón_amarillento_N = mkAN marrón_N "amarillento" ; -- to-check segmentation lin marrón_oliváceo_N = mkAN marrón_N "oliváceo" ; -- to-check segmentation diff --git a/src/spanish/DictSpaAbs.gf b/src/spanish/DictSpaAbs.gf index ca568d775..f2be624c1 100644 --- a/src/spanish/DictSpaAbs.gf +++ b/src/spanish/DictSpaAbs.gf @@ -10311,6 +10311,7 @@ fun colmillo_N : N ; fun colmo_N : N ; fun colocación_N : N ; fun colocación_de_minas_N : N ; +fun colocado_A : A ; fun colocar_V : V ; fun colocar_burlete_V : V ; fun colocar_en_barracas_V : V ; From 1f3f8aea90a637d882026c0a263e75972cf0570b Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 11 Apr 2019 16:24:10 +0200 Subject: [PATCH 3/3] (Spa) create pronouns in one place Use the same oper to get a matching pronoun for an NP. Useful in application grammars, when you want to refer to an NP argument by a matching pronoun. --- src/spanish/ExtendSpa.gf | 27 +++------------ src/spanish/MorphoSpa.gf | 65 ++++++++++++++++++++++++++++++++++++ src/spanish/StructuralSpa.gf | 40 ++++------------------ 3 files changed, 77 insertions(+), 55 deletions(-) diff --git a/src/spanish/ExtendSpa.gf b/src/spanish/ExtendSpa.gf index 1514964d9..933446faa 100644 --- a/src/spanish/ExtendSpa.gf +++ b/src/spanish/ExtendSpa.gf @@ -33,33 +33,16 @@ concrete ExtendSpa of Extend = CatSpa ** ExtendRomanceFunctor - -- put your own definitions here lin - iFem_Pron = mkPronoun - "yo" "me" "me" "mí" - "mi" "mi" "mis" "mis" - Fem Sg P1 ; - theyFem_Pron = mkPronoun - "ellas" "las" "les" "ellas" - "su" "su" "sus" "sus" - Fem Pl P3 ; + iFem_Pron = agr2pron ! {g=Fem ; n=Sg ; p=P1} ; + youFem_Pron = agr2pron ! {g=Fem ; n=Sg ; p=P2} ; + weFem_Pron = agr2pron ! {g=Fem ; n=Pl ; p=P1} ; + youPlFem_Pron = agr2pron ! {g=Fem ; n=Pl ; p=P2} ; + theyFem_Pron = agr2pron ! {g=Fem ; n=Pl ; p=P3} ; - weFem_Pron = mkPronoun - "nosotras" "nos" "nos" "nosotras" - "nuestro" "nuestra" "nuestros" "nuestras" - Fem Pl P1 ; - - youFem_Pron = mkPronoun - "tú" "te" "te" "ti" - "tu" "tu" "tus" "tus" - Fem Sg P2 ; - youPlFem_Pron = mkPronoun - "vosotras" "os" "os" "vosotras" - "vuestro" "vuestra" "vuestros" "vuestras" - Fem Pl P2 ; youPolFem_Pron = mkPronoun "usted" "la" "le" "usted" "su" "su" "sus" "sus" Fem Sg P3 ; - youPolPl_Pron = mkPronoun "ustedes" "los" "les" "ustedes" "su" "su" "sus" "sus" diff --git a/src/spanish/MorphoSpa.gf b/src/spanish/MorphoSpa.gf index 835902765..fbf8fb7dd 100644 --- a/src/spanish/MorphoSpa.gf +++ b/src/spanish/MorphoSpa.gf @@ -164,6 +164,71 @@ oper hasClit = True ; isPol = False } ; +oper + -- To retrieve a matching pronoun for an NP argument. + -- Used in application grammars, please don't remove. /IL + agr2pron : Agr => Pron = table { + {g=Masc ; n=Sg ; p=P1} + => mkPronoun + "yo" "me" "me" "mí" + "mi" "mi" "mis" "mis" + Masc Sg P1 ; + {g=Masc ; n=Sg ; p=P2} + => mkPronoun + "tú" "te" "te" "ti" + "tu" "tu" "tus" "tus" + Masc Sg P2 ; + {g=Masc ; n=Sg ; p=P3} + => mkPronoun + "él" "lo" "le" "él" + "su" "su" "sus" "sus" + Masc Sg P3 ; + {g=Masc ; n=Pl ; p=P1} + => mkPronoun + "nosotros" "nos" "nos" "nosotros" + "nuestro" "nuestra" "nuestros" "nuestras" + Masc Pl P1 ; + {g=Masc ; n=Pl ; p=P2} + => mkPronoun + "vosotros" "os" "os" "vosotros" + "vuestro" "vuestra" "vuestros" "vuestras" + Masc Pl P2 ; + {g=Masc ; n=Pl ; p=P3} + => mkPronoun + "ellos" "los" "les" "ellos" + "su" "su" "sus" "sus" + Masc Pl P3 ; + {g=Fem ; n=Sg ; p=P1} + => mkPronoun + "yo" "me" "me" "mí" + "mi" "mi" "mis" "mis" + Fem Sg P1 ; + {g=Fem ; n=Sg ; p=P2} + => mkPronoun + "tú" "te" "te" "ti" + "tu" "tu" "tus" "tus" + Fem Sg P2 ; + {g=Fem ; n=Sg ; p=P3} + => mkPronoun + "ella" "la" "le" "ella" + "su" "su" "sus" "sus" + Fem Sg P3 ; + {g=Fem ; n=Pl ; p=P1} + => mkPronoun + "nosotras" "nos" "nos" "nosotras" + "nuestro" "nuestra" "nuestros" "nuestras" + Fem Pl P1 ; + {g=Fem ; n=Pl ; p=P2} + => mkPronoun + "vosotras" "os" "os" "vosotras" + "vuestro" "vuestra" "vuestros" "vuestras" + Fem Pl P2 ; + {g=Fem ; n=Pl ; p=P3} + => mkPronoun + "ellas" "las" "les" "ellas" + "su" "su" "sus" "sus" + Fem Pl P3 + } ; --2 Determiners -- diff --git a/src/spanish/StructuralSpa.gf b/src/spanish/StructuralSpa.gf index 3afa41c74..8efabbabd 100644 --- a/src/spanish/StructuralSpa.gf +++ b/src/spanish/StructuralSpa.gf @@ -43,11 +43,7 @@ lin --- first_Ord = {s = \\ag => (regA "primero").s ! Posit ! AF ag.g ag.n} ; for_Prep = mkPrep "para" ; from_Prep = complGen ; --- - he_Pron = - mkPronoun - "él" "lo" "le" "él" - "su" "su" "sus" "sus" - Masc Sg P3 ; + he_Pron = agr2pron ! {g=Masc ; n=Sg ; p=P3} ; here_Adv = mkAdv "aquí" ; here7to_Adv = mkAdv ["para aquí"] ; here7from_Adv = mkAdv ["de aquí"] ; @@ -57,11 +53,7 @@ lin if_Subj = ss "si" ** {m = Indic} ; if_then_Conj = {s1 = "si" ; s2 = "entonces" ; n = Sg ; lock_Conj = <>} ; in8front_Prep = {s = "delante" ; c = MorphoSpa.genitive ; isDir = False} ; - i_Pron = - mkPronoun - "yo" "me" "me" "mí" - "mi" "mi" "mis" "mis" - Masc Sg P1 ; + i_Pron = agr2pron ! {g=Masc ; n=Sg ; p=P1} ; in_Prep = mkPrep "en" ; it_Pron = mkPronoun @@ -101,11 +93,7 @@ lin please_Voc = ss ["por favor"] ; possess_Prep = complGen ; quite_Adv = ss "bastante" ; - she_Pron = - mkPronoun - "ella" "la" "le" "ella" - "su" "su" "sus" "sus" - Fem Sg P3 ; + she_Pron = agr2pron ! {g=Fem ; n=Sg ; p=P3} ; so_AdA = ss "tanto" ; somebody_NP = pn2np (mkPN "alguien" Masc) ; somePl_Det = mkDeterminer "algunos" "algunas" Pl False ; @@ -117,10 +105,7 @@ lin there7to_Adv = mkAdv ["para allí"] ; there7from_Adv = mkAdv ["de allí"] ; therefore_PConj = ss ["por eso"] ; - they_Pron = mkPronoun - "ellos" "los" "les" "ellos" - "su" "su" "sus" "sus" - Masc Pl P3 ; + they_Pron = agr2pron ! {g=Masc ; n=Pl ; p=P3} ; this_Quant = mkQuantifier "este" "esta" "estos" "estas" ; through_Prep = mkPrep "por" ; too_AdA = ss "demasiado" ; @@ -128,11 +113,7 @@ lin under_Prep = mkPrep "bajo" ; very_AdA = ss "muy" ; want_VV = mkVV (verboV (querer_64 "querer")) ; - we_Pron = - mkPronoun - "nosotros" "nos" "nos" "nosotros" - "nuestro" "nuestra" "nuestros" "nuestras" - Masc Pl P1 ; + we_Pron = agr2pron ! {g=Masc ; n=Pl ; p=P1} ; whatSg_IP = {s = \\c => prepCase c ++ ["qué"] ; a = aagr Masc Sg} ; whatPl_IP = {s = \\c => prepCase c ++ ["qué"] ; a = aagr Masc Pl} ; --- when_IAdv = ss "cuándo" ; @@ -149,15 +130,8 @@ lin without_Prep = mkPrep "sin" ; with_Prep = mkPrep "con" ; yes_Utt = ss "sí" ; - youSg_Pron = mkPronoun - "tú" "te" "te" "ti" - "tu" "tu" "tus" "tus" - Masc Sg P2 ; - youPl_Pron = - mkPronoun - "vosotros" "os" "os" "vosotros" - "vuestro" "vuestra" "vuestros" "vuestras" - Masc Pl P2 ; + youSg_Pron = agr2pron ! {g=Masc ; n=Sg ; p=P2} ; + youPl_Pron = agr2pron ! {g=Masc ; n=Pl ; p=P2} ; youPol_Pron = mkPronoun "usted" "lo" "le" "usted"