From 7bedd69e881e41deb8944658264fd4f9038b050e Mon Sep 17 00:00:00 2001 From: aarneranta Date: Thu, 30 Apr 2020 16:44:19 +0200 Subject: [PATCH] =?UTF-8?q?Slavom=C3=ADr's=20corrections=20on=20palataliza?= =?UTF-8?q?tion=20and=20demonstratives?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/slovak/ResSlo.gf | 142 +++++++++++++++++++++++------------- src/slovak/StructuralSlo.gf | 4 +- 2 files changed, 93 insertions(+), 53 deletions(-) diff --git a/src/slovak/ResSlo.gf b/src/slovak/ResSlo.gf index f50783b55..e190cd27f 100644 --- a/src/slovak/ResSlo.gf +++ b/src/slovak/ResSlo.gf @@ -46,6 +46,14 @@ oper _ => stem + long } ; +palatal : Str -> Str = \s -> case s of { + x + "ď" => x + "d" ; + x + "ť" => x + "t" ; + x + "ň" => x + "n" ; + x + "ľ" => x + "l" ; + _ => s + } ; + --------------- -- Nouns --------------- @@ -101,7 +109,7 @@ oper = \snom,pgen,g -> case of { => hrdinaN snom ; => ponyN snom ; ---- - => hrdinaN snom ; + => chlapN snom ; => strojN snom ; => dubN snom ; @@ -154,7 +162,7 @@ oper sdat,sloc = chlap + "ovi" ; sins = chlap + "om" ; - pnom = chlap + "i" ; + pnom = palatal chlap + "i" ; pgen,pacc = chlap + "ov" ; pdat = chlap + "om" ; ploc = chlap + "och" ; @@ -199,7 +207,8 @@ oper g = Masc Inanim } ; - strojN : DeclensionType = \stroj -> + strojN : DeclensionType = \stroj -> + let pstroj = palatal stroj in { snom = stroj ; sgen = stroj + "a" ; @@ -208,9 +217,9 @@ oper sloc = stroj + "i" ; sins = stroj + "om" ; - pnom = stroj + "e" ; + pnom = pstroj + "e" ; pgen = stroj + "ov" ; - pdat = stroj + "om" ; + pdat = pstroj + "om" ; pacc = stroj + "e" ; ploc = stroj + "och" ; pins = stroj + "mi" ; @@ -271,49 +280,53 @@ oper ulíc : Str = case ulic of { ul + "i" + c@? => ul + "í" + c ; _ => ulic - } + } ; + pulic = palatal ulic ; in { snom = ulica ; - sgen = ulic + "e" ; - sdat = ulic + "i" ; + sgen = pulic + "e" ; + sdat = pulic + "i" ; sacc = ulic + "u" ; - sloc = ulic + "i" ; + sloc = pulic + "i" ; sins = ulic + "ou" ; - pnom = ulic + "e" ; + pnom = pulic + "e" ; pgen = ulíc ; pdat = ulic + "iam" ; - pacc = ulic + "e" ; - ploc = ulic + "iach" ; + pacc = pulic + "e" ; + ploc = pulic + "iach" ; pins = ulic + "ami" ; g = Fem } ; dlanN : Str -> DeclensionType = \dlanj,dlani -> - let dlan : Str = init dlani + let + dlan : Str = init dlani ; + pdlan = palatal dlan ; in { snom = dlanj ; - sgen = dlan + "e" ; - sdat = dlan + "i" ; + sgen = pdlan + "e" ; + sdat = pdlan + "i" ; sacc = dlanj ; - sloc = dlan + "i" ; + sloc = pdlan + "i" ; sins = dlanj + "ou" ; - pnom = dlan + "e" ; + pnom = pdlan + "e" ; pgen = dlani ; - pdat = dlan + "iam" ; - pacc = dlan + "e" ; - ploc = dlan + "iach" ; + pdat = pdlan + "iam" ; + pacc = pdlan + "e" ; + ploc = pdlan + "iach" ; pins = dlanj + "ami" ; g = Fem } ; kostN : Str -> DeclensionType = \kost',kosti -> - let kost = init kosti + let + kost = init kosti ; in { snom = kost' ; @@ -340,7 +353,8 @@ oper m + "e" + c@(? | (? + ?)) => m + "ie" + c ; _ => mest ---- TODO: many more rules } ; - mesta = addAccented mest "á" "a" + mesta = addAccented mest "á" "a" ; + pmest = palatal mest ; in { @@ -348,7 +362,7 @@ oper sgen = mest + "a" ; sdat = mest + "u" ; sacc = mesto ; - sloc = mest + "e" ; + sloc = pmest + "e" ; sins = mest + "om" ; pnom = mesta ; @@ -362,21 +376,23 @@ oper } ; srdceN : DeclensionType = \srdce -> - let srdc = init srdce + let + srdc = init srdce ; + psrdc = palatal srdc ; in { snom = srdce ; sgen = srdc + "a" ; sdat = srdc + "u" ; sacc = srdce ; - sloc = srdc + "i" ; + sloc = psrdc + "i" ; sins = srdc + "om" ; - pnom = srdc + "ia" ; + pnom = psrdc + "ia" ; pgen = srdc ; ---- TODO sŕdc - pdat = srdc + "iam" ; - pacc = srdc + "ia" ; - ploc = srdc + "iach" ; + pdat = psrdc + "iam" ; + pacc = psrdc + "ia" ; + ploc = psrdc + "iach" ; pins = srdc + "ami" ; g = Neutr @@ -541,37 +557,41 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> { -- soft consonant + i cudziA : Str -> AdjForms = \cudzi -> - let cudz = init cudzi + let + cudz = init cudzi ; + pcudz = palatal cudz ; in { - msnom = cudz + "í" ; - fsnom = cudz + "ia" ; - nsnom = cudz + "ie" ; - msgen = cudz + "ieho" ; - fsgen = cudz + "ej" ; - msdat = cudz + "iemu" ; - fsacc = cudz + "iu" ; + msnom = pcudz + "í" ; + fsnom = pcudz + "ia" ; + nsnom = pcudz + "ie" ; + msgen = pcudz + "ieho" ; + fsgen = pcudz + "ej" ; + msdat = pcudz + "iemu" ; + fsacc = pcudz + "iu" ; msloc = cudz + "om" ; - msins = cudz + "ím" ; + msins = pcudz + "ím" ; fsins = cudz + "ou" ; - ampnom = cudz + "í" ; - pgen = cudz + "ích" ; - pins = cudz + "ími" ; + ampnom = pcudz + "í" ; + pgen = pcudz + "ích" ; + pins = pcudz + "ími" ; } ; -- accented vowel + soft consonant + i rydziA : Str -> AdjForms = \rydzi -> - let rydz = init rydzi + let + rydz = init rydzi ; + prydz = palatal rydz ; in peknyA rydzi ** { - msnom = rydz + "i" ; + msnom = prydz + "i" ; fsnom = rydz + "a" ; - nsnom = rydz + "e" ; - msgen = rydz + "eho" ; - msdat = rydz + "emu" ; + nsnom = prydz + "e" ; + msgen = prydz + "eho" ; + msdat = prydz + "emu" ; fsacc = rydz + "u" ; - msins = rydz + "im" ; - ampnom = rydz + "i" ; - pgen = rydz + "ich" ; - pins = rydz + "imi" ; + msins = prydz + "im" ; + ampnom = prydz + "i" ; + pgen = prydz + "ich" ; + pins = prydz + "imi" ; } ; -- masculine possession: the same endings as in feminine @@ -594,7 +614,9 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> { } ; paviA : Str -> AdjForms = \pavi -> - let pav = init pavi in { + let + pav = init pavi ; + in { msnom = pav + "í" ; fsnom = pav + "ia" ; nsnom = pav + "ie" ; @@ -837,6 +859,24 @@ oper pdat = jedn + "ým" ; pins = jedn + "ými" ; } ; + + tenDemPronForms : Str -> DemPronForms = \tam -> { + msnom = tam + "ten" ; + fsnom = tam + "tá" ; + nsnom = tam + "to" ; + msgen = tam + "toho" ; + fsgen = tam + "tej" ; + msdat = tam + "tomu" ; + fsacc = tam + "tú" ; + msloc = tam + "tom" ; + msins = tam + "tým" ; + fsins = tam + "tou" ; + ampnom = tam + "tí" ; + fpnom = tam + "tie" ; + pgen = tam + "tých" ; + pdat = tam + "tým" ; + pins = tam + "tými" ; + } ; invarDemPronForms : Str -> DemPronForms = \s -> { msnom, fsnom, nsnom, msgen, fsgen, diff --git a/src/slovak/StructuralSlo.gf b/src/slovak/StructuralSlo.gf index a3f347236..f311aec45 100644 --- a/src/slovak/StructuralSlo.gf +++ b/src/slovak/StructuralSlo.gf @@ -14,8 +14,8 @@ lin somePl_Det = {s = \\g,c => (demPronFormsAdjective (mkDemPronForms "niektor") "").s ! g ! Pl ! c ; size = Num5} ; something_NP = {s,clit,prep = \\c => "nie" + coForms ! c ; a = Ag Neutr Sg P3 ; hasClit = False} ; -- CEG 5.6.3 possess_Prep = mkPrep "" Gen ; - that_Quant = demPronFormsAdjective (mkDemPronForms "tamt") "" ; - this_Quant = demPronFormsAdjective (mkDemPronForms "ten") "to" ; + that_Quant = demPronFormsAdjective (tenDemPronForms "tam") "" ; + this_Quant = demPronFormsAdjective (tenDemPronForms "" ** {msgen = "toh"}) "to" ; to_Prep = mkPrep "do" Gen ; with_Prep = mkPrep (pre {"s" => "so" ; _ => "s"}) Ins ;