From b26060262a31d4ce9a3b1872d35ade94f10c9317 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 21 Feb 2006 13:33:10 +0000 Subject: [PATCH] finished Idiom implementations --- lib/resource-1.0/italian/IdiomIta.gf | 6 +- lib/resource-1.0/romance/RelativeRomance.gf | 2 +- lib/resource-1.0/spanish/BeschSpa.gf | 67 +++++++++++++++++++++ lib/resource-1.0/spanish/IdiomSpa.gf | 21 ++++++- 4 files changed, 90 insertions(+), 6 deletions(-) diff --git a/lib/resource-1.0/italian/IdiomIta.gf b/lib/resource-1.0/italian/IdiomIta.gf index 833607f09..404858751 100644 --- a/lib/resource-1.0/italian/IdiomIta.gf +++ b/lib/resource-1.0/italian/IdiomIta.gf @@ -1,5 +1,5 @@ concrete IdiomIta of Idiom = CatIta ** - open PhonoIta, MorphoIta, ParadigmsIta, Prelude in { + open PhonoIta, MorphoIta, BeschIta, ParadigmsIta, Prelude in { flags optimize=all_subs ; @@ -10,7 +10,7 @@ concrete IdiomIta of Idiom = CatIta ** (insertComplement (\\_ => np.s ! Ton Nom) (predV copula))) ; ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ; - GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- se ci fanno cose + GenericCl vp = mkClause "si" (agrP3 Masc Sg) vp ; ---- non se ci fanno cose ProgrVP vp = insertComplement @@ -21,7 +21,7 @@ concrete IdiomIta of Idiom = CatIta ** in (vp.s ! VPGerund).inf ! (aagr agr.g agr.n) ++ clpr.p1 ++ obj ) - (predV (essereV (regV "stare"))) ; + (predV (essereV (verboV (stare_16 "stare")))) ; } diff --git a/lib/resource-1.0/romance/RelativeRomance.gf b/lib/resource-1.0/romance/RelativeRomance.gf index 355e11628..9ee99e544 100644 --- a/lib/resource-1.0/romance/RelativeRomance.gf +++ b/lib/resource-1.0/romance/RelativeRomance.gf @@ -16,7 +16,7 @@ incomplete concrete RelativeRomance of Relative = RNoAg => ag ; RAg a => a ** {p = P3} } ; - cl = mkClause (rp.s ! False ! ag ! Nom) agr vp + cl = mkClause (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) agr vp in cl.s ! t ! ant ! b ! m } ; diff --git a/lib/resource-1.0/spanish/BeschSpa.gf b/lib/resource-1.0/spanish/BeschSpa.gf index c38899543..5a789c115 100644 --- a/lib/resource-1.0/spanish/BeschSpa.gf +++ b/lib/resource-1.0/spanish/BeschSpa.gf @@ -209,6 +209,73 @@ oper haber_3 : Str -> Verbum = \haber -> } } ; +oper hay_3 : Str -> Verbum = \haber -> + let h_ = Predef.tk 4 haber in + {s = table { + VI Infn=> h_ + "aber" ; + VI Ger => h_ + "abiendo" ; + VI Part => h_ + "abido" ; + VP (Pres Ind Sg P1) => h_ + "e" ; + VP (Pres Ind Sg P2) => h_ + "as" ; + VP (Pres Ind Sg P3) => h_ + "ay" ; + VP (Pres Ind Pl P1) => h_ + "emos" ; + VP (Pres Ind Pl P2) => h_ + "abéis" ; + VP (Pres Ind Pl P3) => h_ + "an" ; + VP (Pres Subj Sg P1) => h_ + "aya" ; + VP (Pres Subj Sg P2) => h_ + "ayas" ; + VP (Pres Subj Sg P3) => h_ + "aya" ; + VP (Pres Subj Pl P1) => h_ + "ayamos" ; + VP (Pres Subj Pl P2) => h_ + "ayáis" ; + VP (Pres Subj Pl P3) => h_ + "ayan" ; + VP (Impf Ind Sg P1) => h_ + "abía" ; + VP (Impf Ind Sg P2) => h_ + "abías" ; + VP (Impf Ind Sg P3) => h_ + "abía" ; + VP (Impf Ind Pl P1) => h_ + "abíamos" ; + VP (Impf Ind Pl P2) => h_ + "abíais" ; + VP (Impf Ind Pl P3) => h_ + "abían" ; + VP (Impf Subj Sg P1) => variants {h_ + "ubiera" ; h_ + "ubiese"} ; + VP (Impf Subj Sg P2) => variants {h_ + "ubieras" ; h_ + "ubieses"} ; + VP (Impf Subj Sg P3) => variants {h_ + "ubiera" ; h_ + "ubiese"} ; + VP (Impf Subj Pl P1) => variants {h_ + "ubiéramos" ; h_ + "ubiésemos"} ; + VP (Impf Subj Pl P2) => variants {h_ + "ubierais" ; h_ + "ubieseis"} ; + VP (Impf Subj Pl P3) => variants {h_ + "ubieran" ; h_ + "ubiesen"} ; + VP (Pret Sg P1) => h_ + "ube" ; + VP (Pret Sg P2) => h_ + "ubiste" ; + VP (Pret Sg P3) => h_ + "ubo" ; + VP (Pret Pl P1) => h_ + "ubimos" ; + VP (Pret Pl P2) => h_ + "ubisteis" ; + VP (Pret Pl P3) => h_ + "ubieron" ; + VP (Fut Ind Sg P1) => h_ + "abré" ; + VP (Fut Ind Sg P2) => h_ + "abrás" ; + VP (Fut Ind Sg P3) => h_ + "abrá" ; + VP (Fut Ind Pl P1) => h_ + "abremos" ; + VP (Fut Ind Pl P2) => h_ + "abréis" ; + VP (Fut Ind Pl P3) => h_ + "abrán" ; + VP (Fut Subj Sg P1) => h_ + "ubiere" ; + VP (Fut Subj Sg P2) => h_ + "ubieres" ; + VP (Fut Subj Sg P3) => h_ + "ubiere" ; + VP (Fut Subj Pl P1) => h_ + "ubiéremos" ; + VP (Fut Subj Pl P2) => h_ + "ubiereis" ; + VP (Fut Subj Pl P3) => h_ + "ubieren" ; + VP (Cond Sg P1) => h_ + "abría" ; + VP (Cond Sg P2) => h_ + "abrías" ; + VP (Cond Sg P3) => h_ + "abría" ; + VP (Cond Pl P1) => h_ + "abríamos" ; + VP (Cond Pl P2) => h_ + "abríais" ; + VP (Cond Pl P3) => h_ + "abrían" ; + VP (Imp Sg P1) => variants {} ; + VP (Imp Sg P2) => variants {} ; + VP (Imp Sg P3) => variants {} ; + VP (Imp Pl P1) => variants {} ; + VP (Imp Pl P2) => variants {} ; + VP (Imp Pl P3) => variants {} ; + VP (Pass Sg Masc) => h_ + "abido" ; + VP (Pass Sg Fem) => h_ + "abida" ; + VP (Pass Pl Masc) => h_ + "abidos" ; + VP (Pass Pl Fem) => h_ + "abidas" + } + } ; + oper tener_4 : Str -> Verbum = \tener -> let t_ = Predef.tk 4 tener in {s = table { diff --git a/lib/resource-1.0/spanish/IdiomSpa.gf b/lib/resource-1.0/spanish/IdiomSpa.gf index 4a052d691..6b6aff5c7 100644 --- a/lib/resource-1.0/spanish/IdiomSpa.gf +++ b/lib/resource-1.0/spanish/IdiomSpa.gf @@ -1,7 +1,24 @@ concrete IdiomSpa of Idiom = CatSpa ** - open MorphoSpa, ParadigmsSpa, Prelude in { + open MorphoSpa, ParadigmsSpa, BeschSpa, Prelude in { flags optimize=all_subs ; -} + lin + ExistNP np = + mkClause [] (agrP3 Masc Sg) + (insertComplement (\\_ => np.s ! Ton Acc) (predV (verboV (hay_3 "haber")))) ; + ImpersCl vp = mkClause [] (agrP3 Masc Sg) vp ; + GenericCl vp = mkClause "se" (agrP3 Masc Sg) vp ; ---- just Italian ? + ProgrVP vp = + insertComplement + (\\agr => + let + clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ; + obj = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol + in + (vp.s ! VPGerund).inf ! (aagr agr.g agr.n) ++ clpr.p1 ++ obj + ) + (predV (verboV (estar_2 "estar"))) ; + +}