diff --git a/src/spanish/DictSpa.gf b/src/spanish/DictSpa.gf index 0987d85a1..59b5e8339 100644 --- a/src/spanish/DictSpa.gf +++ b/src/spanish/DictSpa.gf @@ -16588,8 +16588,9 @@ lin escapista_N = mkN "escapista" ; lin escapular_A = mkA "escapular" ; lin escapulario_N = mkN "escapulario" ; lin escarabajo_N = mkN "escarabajo" ; -lin escarabajo_bombardero_N = mkAN escarabajo_N "bombardero" ; -- to-check segmentation +lin escarabajo_bombardero_N = mkAN escarabajo_N "bombardero" ; lin escarabajo_del_frijol_N = mkN escarabajo_N "del frijol" ; +lin escaramujo_N = mkN "escaramujo" ; lin escaramuza_N = mkN "escaramuza" ; lin escaramuzador_N = mkN "escaramuzador" ; lin escaramuzar_V = mkV "escaramuzar" ; @@ -16621,9 +16622,9 @@ lin escatología_N = mkN "escatología" ; lin escatológico_A = mkA "escatológico" ; lin escayolar_V = mkV "escayolar" ; lin escaño_N = mkN "escaño" ; -lin escaño_trasero_N = mkAN escaño_N "trasero" ; -- to-check segmentation +lin escaño_trasero_N = mkAN escaño_N "trasero" ; lin escena_N = mkN "escena" ; -lin escena_dramática_N = mkAN escena_N "dramática" ; -- to-check segmentation +lin escena_dramática_N = mkAN escena_N "dramática" ; lin escenario_N = mkN "escenario" ; lin escenarista_N = mkN "escenarista" ; lin escenificación_N = mkN "escenificación" ; @@ -16661,7 +16662,7 @@ lin escolástica_A = mkA "escolástica" ; lin escolástica_N = mkN "escolástica" ; lin escolástico_A = mkA "escolástico" ; lin escolástico_N = mkN "escolástico" ; -lin escolástico_medieval_N = mkAN escolástico_N "medieval" ; -- to-check segmentation +lin escolástico_medieval_N = mkAN escolástico_N "medieval" ; lin escombros_N = mkN "escombros" ; lin esconder_V = mkV "esconder" ; lin esconderse_V = reflV esconder_V ; @@ -16705,14 +16706,14 @@ lin escritor_a_sueldo_N = mkN escritor_N "a sueldo" ; lin escritor_de_cine_N = mkN escritor_N "de cine" ; lin escritor_de_odas_N = mkN escritor_N "de odas" ; lin escritor_de_tragedias_N = mkN escritor_N "de tragedias" ; -lin escritor_deportivo_N = mkAN escritor_N "deportivo" ; -- to-check segmentation -lin escritor_popular_N = mkAN escritor_N "popular" ; -- to-check segmentation +lin escritor_deportivo_N = mkAN escritor_N "deportivo" ; +lin escritor_popular_N = mkAN escritor_N "popular" ; lin escritora_N = mkN "escritora" ; lin escritorio_N = mkN "escritorio" ; lin escritura_N = mkN "escritura" ; lin escritura_a_máquina_N = mkN escritura_N "a máquina" ; lin escritura_de_renuncia_N = mkN escritura_N "de renuncia" ; -lin escritura_fiduciaria_N = mkAN escritura_N "fiduciaria" ; -- to-check segmentation +lin escritura_fiduciaria_N = mkAN escritura_N "fiduciaria" ; lin escriturar_V = mkV "escriturar" ; lin escriturístico_A = mkA "escriturístico" ; lin escrotal_A = mkA "escrotal" ; @@ -16739,12 +16740,12 @@ lin escuela_N = mkN "escuela" ; lin escuela_de_enfermería_N = mkN escuela_N "de enfermería" ; lin escuela_de_ingeniería_N = mkN escuela_N "de ingeniería" ; lin escuela_de_veterinaria_N = mkN escuela_N "de veterinaria" ; -lin escuela_diurna_N = mkAN escuela_N "diurna" ; -- to-check segmentation -lin escuela_militar_N = mkAN escuela_N "militar" ; -- to-check segmentation -lin escuela_naval_N = mkAN escuela_N "naval" ; -- to-check segmentation -lin escuela_normal_N = mkAN escuela_N "normal" ; -- to-check segmentation -lin escuela_secundaria_N = mkAN escuela_N "secundaria" ; -- to-check segmentation -lin escuela_técnica_N = mkAN escuela_N "técnica" ; -- to-check segmentation +lin escuela_diurna_N = mkAN escuela_N "diurna" ; +lin escuela_militar_N = mkAN escuela_N "militar" ; +lin escuela_naval_N = mkAN escuela_N "naval" ; +lin escuela_normal_N = mkAN escuela_N "normal" ; +lin escuela_secundaria_N = mkAN escuela_N "secundaria" ; +lin escuela_técnica_N = mkAN escuela_N "técnica" ; lin escueto_A = mkA "escueto" ; lin esculpir_V = mkV "esculpir" ; lin escultismo_N = mkN "escultismo" ; @@ -16764,7 +16765,7 @@ lin escámula_N = mkN "escámula" ; lin escándalo_N = mkN "escándalo" ; lin escáner_N = mkN "escáner" ; lin escáner_de_imagen_N = mkN escáner_N "de imagen" ; -lin escáner_digital_N = mkAN escáner_N "digital" ; -- to-check segmentation +lin escáner_digital_N = mkAN escáner_N "digital" ; lin escénicamente_Adv = mkAdv "escénicamente" ; lin escénico_A = mkA "escénico" ; lin escéptico_A = mkA "escéptico" ; @@ -16780,7 +16781,6 @@ lin esfera_N = mkN "esfera" ; lin esferómetro_N = mkN "esferómetro" ; lin esfigmomanómetro_N = mkN "esfigmomanómetro" ; lin esfinge_N = mkN "esfinge" ; -lin esfinter_anal_N = mkAN esfinter_N "anal" ; -- to-check segmentation lin esforzar_V = I.esforzar_V ; lin esforzarse_V = reflV esforzar_V ; lin esfuerza_N = mkN "esfuerza" ; @@ -16789,8 +16789,8 @@ lin esfumación_N = mkN "esfumación" ; lin esfumarse_V = reflV esfumar_V ; lin esférico_A = mkA "esférico" ; lin esfínter_N = mkN "esfínter" ; -lin esfínter_anal_N = mkAN esfínter_N "anal" ; -- to-check segmentation -lin esfínter_uretral_N = mkAN esfínter_N "uretral" ; -- to-check segmentation +lin esfínter_anal_N = mkAN esfínter_N "anal" ; +lin esfínter_uretral_N = mkAN esfínter_N "uretral" ; lin esgrafiado_N = mkN "esgrafiado" ; lin esgrima_N = mkN "esgrima" ; lin esgrimir_V = mkV "esgrimir" ; @@ -16799,7 +16799,7 @@ lin esgucio_N = mkN "esgucio" ; lin esguince_N = mkN "esguince" ; lin esker_N = mkN "esker" ; lin eslabón_N = mkN "eslabón" ; -lin eslabón_giratorio_N = mkAN eslabón_N "giratorio" ; -- to-check segmentation +lin eslabón_giratorio_N = mkAN eslabón_N "giratorio" ; lin eslalon_N = mkN "eslalon" ; lin eslavo_A = mkA "eslavo" ; lin eslavo_N = mkN "eslavo" ; @@ -16825,10 +16825,10 @@ lin esotérico_A = mkA "esotérico" ; lin espabilado_N = mkN "espabilado" ; lin espacial_A = mkA "espacial" ; lin espacio_N = mkN "espacio" ; -lin espacio_abierto_N = mkAN espacio_N "abierto" ; -- to-check segmentation -lin espacio_aéreo_N = mkAN espacio_N "aéreo" ; -- to-check segmentation +lin espacio_abierto_N = mkAN espacio_N "abierto" ; +lin espacio_aéreo_N = mkAN espacio_N "aéreo" ; lin espacio_de_disco_N = mkN espacio_N "de disco" ; -lin espacio_exterior_N = mkAN espacio_N "exterior" ; -- to-check segmentation +lin espacio_exterior_N = mkAN espacio_N "exterior" ; lin espacioso_A = mkA "espacioso" ; lin espada_N = mkN "espada" ; lin espada_de_Damocles_N = mkN espada_N "de Damocles" ; @@ -24549,22 +24549,22 @@ lin leonino_A = mkA "leonino" ; lin leontodon_N = mkN "leontodon" ; lin leontopodium_N = mkN "leontopodium" ; lin leopardo_N = mkN "leopardo" ; -lin leopardo_hembra_N = mkAN leopardo_N "hembra" ; -- to-check segmentation -lin leopardus_pardalis_N = mkAN leopardus_N "pardalis" ; -- to-check segmentation -lin leopardus_wiedii_N = mkAN leopardus_N "wiedii" ; -- to-check segmentation +lin leopardo_hembra_N = mkAN leopardo_N "hembra" ; +lin leopardus_pardalis_N = mkN leopardus_N "pardalis" ; +lin leopardus_wiedii_N = mkN leopardus_N "wiedii" ; lin leotardo_N = mkN "leotardo" ; -lin lepidocybium_flavobrunneum_N = mkAN lepidocybium_N "flavobrunneum" ; -- to-check segmentation +lin lepidocybium_flavobrunneum_N = mkN lepidocybium_N "flavobrunneum" ; lin lepidolita_N = mkN "lepidolita" ; lin lepiota_N = mkN "lepiota" ; -lin lepiota_morgani_N = mkAN lepiota_N "morgani" ; -- to-check segmentation +lin lepiota_morgani_N = mkN lepiota_N "morgani" ; lin lepisma_N = mkN "lepisma" ; lin lepisosteiformes_N = mkN "lepisosteiformes" ; -lin lepomis_gibbosus_N = mkAN lepomis_N "gibbosus" ; -- to-check segmentation +lin lepomis_gibbosus_N = mkN lepomis_N "gibbosus" ; lin lepra_N = mkN "lepra" ; lin leprechaun_N = mkN "leprechaun" ; lin leprosa_N = mkN "leprosa" ; lin leproso_N = mkN "leproso" ; -lin leptailurus_serval_N = mkAN leptailurus_N "serval" ; -- to-check segmentation +lin leptailurus_serval_N = mkN leptailurus_N "serval" ; lin leptodáctilo_N = mkN "leptodáctilo" ; lin leptomeninge_N = mkN "leptomeninge" ; lin leptomeningitis_N = mkN "leptomeningitis" ; @@ -24588,12 +24588,12 @@ lin letargo_N = mkN "letargo" ; lin letona_N = mkN "letona" ; lin letón_N = mkN "letón" ; lin letra_N = mkN "letra" ; -lin letra_bastardilla_N = mkAN letra_N "bastardilla" ; -- to-check segmentation -lin letra_chica_N = mkAN letra_N "chica" ; -- to-check segmentation +lin letra_bastardilla_N = mkAN letra_N "bastardilla" ; +lin letra_chica_N = mkAN letra_N "chica" ; lin letra_de_crédito_N = mkN letra_N "de crédito" ; lin letra_del_tesoro_N = mkN letra_N "del tesoro" ; -lin letra_pequeña_N = mkAN letra_N "pequeña" ; -- to-check segmentation -lin letra_romántica_N = mkAN letra_N "romántica" ; -- to-check segmentation +lin letra_pequeña_N = mkAN letra_N "pequeña" ; +lin letra_romántica_N = mkAN letra_N "romántica" ; lin letrado_A = mkA "letrado" ; lin letrado_N = mkN "letrado" ; lin letrados_N = mkN "letrados" ; @@ -24603,8 +24603,8 @@ lin letrina_N = mkN "letrina" ; lin letárgico_A = mkA "letárgico" ; lin leu_N = mkN "leu" ; lin leucemia_N = mkN "leucemia" ; -lin leucemia_aguda_N = mkAN leucemia_N "aguda" ; -- to-check segmentation -lin leucemia_crónica_N = mkAN leucemia_N "crónica" ; -- to-check segmentation +lin leucemia_aguda_N = mkAN leucemia_N "aguda" ; +lin leucemia_crónica_N = mkAN leucemia_N "crónica" ; lin leucina_N = mkN "leucina" ; lin leucisco_N = mkN "leucisco" ; lin leucocito_N = mkN "leucocito" ; @@ -41949,7 +41949,6 @@ lin enyesar_V = mkV "enyesar" ; lin erythroxylum_N = mkN "erythroxylum" ; lin escama_N = mkN "escama" ; lin escocés_N = mkN "escocés" ; -lin esfinter_N = mkN "esfinter" ; lin espasmo_N = mkN "espasmo" ; lin espectógrafo_N = mkN "espectógrafo" ; lin estacion_N = mkN "estacion" ; diff --git a/src/spanish/DictSpaAbs.gf b/src/spanish/DictSpaAbs.gf index 4a2a912d4..2fa5f665d 100644 --- a/src/spanish/DictSpaAbs.gf +++ b/src/spanish/DictSpaAbs.gf @@ -16833,6 +16833,7 @@ fun escapulario_N : N ; fun escarabajo_N : N ; fun escarabajo_bombardero_N : N ; fun escarabajo_del_frijol_N : N ; +fun escaramujo_N : N ; fun escaramuza_N : N ; fun escaramuzador_N : N ; fun escaramuzar_V : V ; @@ -17023,8 +17024,6 @@ fun esfera_N : N ; fun esferómetro_N : N ; fun esfigmomanómetro_N : N ; fun esfinge_N : N ; -fun esfinter_N : N ; -fun esfinter_anal_N : N ; fun esforzar_V : V ; fun esforzarse_V : V ; fun esfuerza_N : N ; diff --git a/src/spanish/IdiomSpa.gf b/src/spanish/IdiomSpa.gf index 8fefce531..9446724a1 100644 --- a/src/spanish/IdiomSpa.gf +++ b/src/spanish/IdiomSpa.gf @@ -1,36 +1,48 @@ -concrete IdiomSpa of Idiom = CatSpa ** - open (P = ParamX), MorphoSpa, ParadigmsSpa, BeschSpa, Prelude in { +concrete IdiomSpa of Idiom = CatSpa ** + open (P = ParamX), MorphoSpa, ParadigmsSpa, BeschSpa, (N=NounSpa), Prelude in { flags optimize=all_subs ; lin ImpersCl vp = mkClause [] True False (agrP3 Masc Sg) vp ; - GenericCl vp = + GenericCl vp = mkClause [] True False (agrP3 Masc Sg) (insertRefl vp) ; ---- just Italian ? - CleftNP np rs = mkClause [] True False (agrP3 Masc Sg) + CleftNP np rs = mkClause [] True False (agrP3 Masc Sg) (insertComplement (\\_ => rs.s ! Indic ! np.a) (insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ; - CleftAdv ad s = mkClause [] True False (agrP3 Masc Sg) + CleftAdv ad s = mkClause [] True False (agrP3 Masc Sg) (insertComplement (\\_ => conjThat ++ s.s ! Indic) (insertComplement (\\_ => ad.s) (predV copula))) ; - ExistNP np = + ExistNP np = mkClause [] True False (agrP3 Masc Sg) - (insertComplement (\\_ => (np.s ! Acc).ton) (predV (verboV (hay_3 "haber")))) ; + (insertComplement (\\_ => (np.s ! Acc).ton) hay_VP) ; + + ExistNPAdv np adv = ExistNP (N.AdvNP np adv) ; + ExistIP ip = { s = \\t,a,p,_ => - ip.s ! Nom ++ - (mkClause [] True False (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! DDir ! t ! a ! p ! Indic + ip.s ! Nom ++ + (mkClause [] True False (agrP3 Masc Sg) hay_VP).s ! DDir ! t ! a ! p ! Indic } ; - ProgrVP vp = - insertComplement - (\\agr => - let + ExistIPAdv ip adv = { + s = \\t,a,p,_ => + ip.s ! Nom ++ + (mkClause [] True False (agrP3 Masc Sg) hay_VP).s ! DDir ! t ! a ! p ! Indic + ++ adv.s + } ; + +-- ImpP3 np vp = {} ; + + ProgrVP vp = + insertComplement + (\\agr => + let clpr = ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ; obj = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! RPos ---- pol in @@ -42,4 +54,22 @@ concrete IdiomSpa of Idiom = CatSpa ** mkImperative False P1 vp ! RPos ! Masc ! Pl ; --- fem } ; + -- : NP -> NP ; -- the president himself (is at home) + -- SelfNP np = + + -- : VP -> VP ; -- is himself at home + SelfAdvVP, + SelfAdVVP = selfVP ; + +oper + hay_VP = predV (verboV (hay_3 "haber")) ; + selfVP : VP -> VP = insertComplement ( + \\agr => case agr of { + {g = g ; n = n ; p = p} => table { + P1 => numForms "yo mismo" "yo misma" ! n ; + P2 => genNumForms "tu mismo" "tu misma" "vosotros mismos" "vosotras mismas" ! g ! n ; + P3 => genNumForms "él mismo" "ella misma" "ellos mismos" "ellas mismas" ! g ! n + } ! p + } + ) ; } diff --git a/src/spanish/MorphoSpa.gf b/src/spanish/MorphoSpa.gf index c942fcb9e..835902765 100644 --- a/src/spanish/MorphoSpa.gf +++ b/src/spanish/MorphoSpa.gf @@ -42,7 +42,8 @@ oper _ + "a" => mkNoun (nomVino mec) Fem ; _ + "z" => mkNounIrreg mec (init mec + "ces") Fem ; _ + "ión" => mkNounIrreg mec (tk 2 mec + "ones") Fem ; - _ + "tud" => mkNounIrreg mec (mec + "es") Fem ; + _ + "tud" => mkNoun (nomPilar mec) Fem ; + _ + "dad" => mkNoun (nomPilar mec) Fem ; _ + "án" => mkNounIrreg mec (tk 2 mec + "anes") Masc ; _ + "én" => mkNounIrreg mec (tk 2 mec + "enes") Masc ; _ + "ín" => mkNounIrreg mec (tk 2 mec + "ines") Masc ;