1
0
forked from GitHub/gf-rgl

Slavomír's corrections on palatalization and demonstratives

This commit is contained in:
aarneranta
2020-04-30 16:44:19 +02:00
parent f19fc9c3ed
commit 7bedd69e88
2 changed files with 93 additions and 53 deletions

View File

@@ -46,6 +46,14 @@ oper
_ => stem + long _ => stem + long
} ; } ;
palatal : Str -> Str = \s -> case s of {
x + "ď" => x + "d" ;
x + "ť" => x + "t" ;
x + "ň" => x + "n" ;
x + "ľ" => x + "l" ;
_ => s
} ;
--------------- ---------------
-- Nouns -- Nouns
--------------- ---------------
@@ -101,7 +109,7 @@ oper
= \snom,pgen,g -> case <g, snom, pgen> of { = \snom,pgen,g -> case <g, snom, pgen> of {
<Masc Anim, _ + "a" , _ + "ov"> => hrdinaN snom ; <Masc Anim, _ + "a" , _ + "ov"> => hrdinaN snom ;
<Masc _, _ + ("i"|"y"|"e") , _ + "ov"> => ponyN snom ; ---- <Masc _, _ + ("i"|"y"|"e") , _ + "ov"> => ponyN snom ; ----
<Masc Anim, _ , _ + "ov"> => hrdinaN snom ; <Masc Anim, _ , _ + "ov"> => chlapN snom ;
<Masc Inanim, _ + #softConsonant, _ + "ov"> => strojN snom ; <Masc Inanim, _ + #softConsonant, _ + "ov"> => strojN snom ;
<Masc Ianim, _ + #hardConsonant, _ + "ov"> => dubN snom ; <Masc Ianim, _ + #hardConsonant, _ + "ov"> => dubN snom ;
@@ -154,7 +162,7 @@ oper
sdat,sloc = chlap + "ovi" ; sdat,sloc = chlap + "ovi" ;
sins = chlap + "om" ; sins = chlap + "om" ;
pnom = chlap + "i" ; pnom = palatal chlap + "i" ;
pgen,pacc = chlap + "ov" ; pgen,pacc = chlap + "ov" ;
pdat = chlap + "om" ; pdat = chlap + "om" ;
ploc = chlap + "och" ; ploc = chlap + "och" ;
@@ -199,7 +207,8 @@ oper
g = Masc Inanim g = Masc Inanim
} ; } ;
strojN : DeclensionType = \stroj -> strojN : DeclensionType = \stroj ->
let pstroj = palatal stroj in
{ {
snom = stroj ; snom = stroj ;
sgen = stroj + "a" ; sgen = stroj + "a" ;
@@ -208,9 +217,9 @@ oper
sloc = stroj + "i" ; sloc = stroj + "i" ;
sins = stroj + "om" ; sins = stroj + "om" ;
pnom = stroj + "e" ; pnom = pstroj + "e" ;
pgen = stroj + "ov" ; pgen = stroj + "ov" ;
pdat = stroj + "om" ; pdat = pstroj + "om" ;
pacc = stroj + "e" ; pacc = stroj + "e" ;
ploc = stroj + "och" ; ploc = stroj + "och" ;
pins = stroj + "mi" ; pins = stroj + "mi" ;
@@ -271,49 +280,53 @@ oper
ulíc : Str = case ulic of { ulíc : Str = case ulic of {
ul + "i" + c@? => ul + "í" + c ; ul + "i" + c@? => ul + "í" + c ;
_ => ulic _ => ulic
} } ;
pulic = palatal ulic ;
in in
{ {
snom = ulica ; snom = ulica ;
sgen = ulic + "e" ; sgen = pulic + "e" ;
sdat = ulic + "i" ; sdat = pulic + "i" ;
sacc = ulic + "u" ; sacc = ulic + "u" ;
sloc = ulic + "i" ; sloc = pulic + "i" ;
sins = ulic + "ou" ; sins = ulic + "ou" ;
pnom = ulic + "e" ; pnom = pulic + "e" ;
pgen = ulíc ; pgen = ulíc ;
pdat = ulic + "iam" ; pdat = ulic + "iam" ;
pacc = ulic + "e" ; pacc = pulic + "e" ;
ploc = ulic + "iach" ; ploc = pulic + "iach" ;
pins = ulic + "ami" ; pins = ulic + "ami" ;
g = Fem g = Fem
} ; } ;
dlanN : Str -> DeclensionType = \dlanj,dlani -> dlanN : Str -> DeclensionType = \dlanj,dlani ->
let dlan : Str = init dlani let
dlan : Str = init dlani ;
pdlan = palatal dlan ;
in in
{ {
snom = dlanj ; snom = dlanj ;
sgen = dlan + "e" ; sgen = pdlan + "e" ;
sdat = dlan + "i" ; sdat = pdlan + "i" ;
sacc = dlanj ; sacc = dlanj ;
sloc = dlan + "i" ; sloc = pdlan + "i" ;
sins = dlanj + "ou" ; sins = dlanj + "ou" ;
pnom = dlan + "e" ; pnom = pdlan + "e" ;
pgen = dlani ; pgen = dlani ;
pdat = dlan + "iam" ; pdat = pdlan + "iam" ;
pacc = dlan + "e" ; pacc = pdlan + "e" ;
ploc = dlan + "iach" ; ploc = pdlan + "iach" ;
pins = dlanj + "ami" ; pins = dlanj + "ami" ;
g = Fem g = Fem
} ; } ;
kostN : Str -> DeclensionType = \kost',kosti -> kostN : Str -> DeclensionType = \kost',kosti ->
let kost = init kosti let
kost = init kosti ;
in in
{ {
snom = kost' ; snom = kost' ;
@@ -340,7 +353,8 @@ oper
m + "e" + c@(? | (? + ?)) => m + "ie" + c ; m + "e" + c@(? | (? + ?)) => m + "ie" + c ;
_ => mest ---- TODO: many more rules _ => mest ---- TODO: many more rules
} ; } ;
mesta = addAccented mest "á" "a" mesta = addAccented mest "á" "a" ;
pmest = palatal mest ;
in in
{ {
@@ -348,7 +362,7 @@ oper
sgen = mest + "a" ; sgen = mest + "a" ;
sdat = mest + "u" ; sdat = mest + "u" ;
sacc = mesto ; sacc = mesto ;
sloc = mest + "e" ; sloc = pmest + "e" ;
sins = mest + "om" ; sins = mest + "om" ;
pnom = mesta ; pnom = mesta ;
@@ -362,21 +376,23 @@ oper
} ; } ;
srdceN : DeclensionType = \srdce -> srdceN : DeclensionType = \srdce ->
let srdc = init srdce let
srdc = init srdce ;
psrdc = palatal srdc ;
in in
{ {
snom = srdce ; snom = srdce ;
sgen = srdc + "a" ; sgen = srdc + "a" ;
sdat = srdc + "u" ; sdat = srdc + "u" ;
sacc = srdce ; sacc = srdce ;
sloc = srdc + "i" ; sloc = psrdc + "i" ;
sins = srdc + "om" ; sins = srdc + "om" ;
pnom = srdc + "ia" ; pnom = psrdc + "ia" ;
pgen = srdc ; ---- TODO sŕdc pgen = srdc ; ---- TODO sŕdc
pdat = srdc + "iam" ; pdat = psrdc + "iam" ;
pacc = srdc + "ia" ; pacc = psrdc + "ia" ;
ploc = srdc + "iach" ; ploc = psrdc + "iach" ;
pins = srdc + "ami" ; pins = srdc + "ami" ;
g = Neutr g = Neutr
@@ -541,37 +557,41 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
-- soft consonant + i -- soft consonant + i
cudziA : Str -> AdjForms = \cudzi -> cudziA : Str -> AdjForms = \cudzi ->
let cudz = init cudzi let
cudz = init cudzi ;
pcudz = palatal cudz ;
in { in {
msnom = cudz + "í" ; msnom = pcudz + "í" ;
fsnom = cudz + "ia" ; fsnom = pcudz + "ia" ;
nsnom = cudz + "ie" ; nsnom = pcudz + "ie" ;
msgen = cudz + "ieho" ; msgen = pcudz + "ieho" ;
fsgen = cudz + "ej" ; fsgen = pcudz + "ej" ;
msdat = cudz + "iemu" ; msdat = pcudz + "iemu" ;
fsacc = cudz + "iu" ; fsacc = pcudz + "iu" ;
msloc = cudz + "om" ; msloc = cudz + "om" ;
msins = cudz + "ím" ; msins = pcudz + "ím" ;
fsins = cudz + "ou" ; fsins = cudz + "ou" ;
ampnom = cudz + "í" ; ampnom = pcudz + "í" ;
pgen = cudz + "ích" ; pgen = pcudz + "ích" ;
pins = cudz + "ími" ; pins = pcudz + "ími" ;
} ; } ;
-- accented vowel + soft consonant + i -- accented vowel + soft consonant + i
rydziA : Str -> AdjForms = \rydzi -> rydziA : Str -> AdjForms = \rydzi ->
let rydz = init rydzi let
rydz = init rydzi ;
prydz = palatal rydz ;
in peknyA rydzi ** { in peknyA rydzi ** {
msnom = rydz + "i" ; msnom = prydz + "i" ;
fsnom = rydz + "a" ; fsnom = rydz + "a" ;
nsnom = rydz + "e" ; nsnom = prydz + "e" ;
msgen = rydz + "eho" ; msgen = prydz + "eho" ;
msdat = rydz + "emu" ; msdat = prydz + "emu" ;
fsacc = rydz + "u" ; fsacc = rydz + "u" ;
msins = rydz + "im" ; msins = prydz + "im" ;
ampnom = rydz + "i" ; ampnom = prydz + "i" ;
pgen = rydz + "ich" ; pgen = prydz + "ich" ;
pins = rydz + "imi" ; pins = prydz + "imi" ;
} ; } ;
-- masculine possession: the same endings as in feminine -- masculine possession: the same endings as in feminine
@@ -594,7 +614,9 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
} ; } ;
paviA : Str -> AdjForms = \pavi -> paviA : Str -> AdjForms = \pavi ->
let pav = init pavi in { let
pav = init pavi ;
in {
msnom = pav + "í" ; msnom = pav + "í" ;
fsnom = pav + "ia" ; fsnom = pav + "ia" ;
nsnom = pav + "ie" ; nsnom = pav + "ie" ;
@@ -837,6 +859,24 @@ oper
pdat = jedn + "ým" ; pdat = jedn + "ým" ;
pins = jedn + "ými" ; 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 -> { invarDemPronForms : Str -> DemPronForms = \s -> {
msnom, fsnom, nsnom, msgen, fsgen, msnom, fsnom, nsnom, msgen, fsgen,

View File

@@ -14,8 +14,8 @@ lin
somePl_Det = {s = \\g,c => (demPronFormsAdjective (mkDemPronForms "niektor") "").s ! g ! Pl ! c ; size = Num5} ; 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 something_NP = {s,clit,prep = \\c => "nie" + coForms ! c ; a = Ag Neutr Sg P3 ; hasClit = False} ; -- CEG 5.6.3
possess_Prep = mkPrep "" Gen ; possess_Prep = mkPrep "" Gen ;
that_Quant = demPronFormsAdjective (mkDemPronForms "tamt") "" ; that_Quant = demPronFormsAdjective (tenDemPronForms "tam") "" ;
this_Quant = demPronFormsAdjective (mkDemPronForms "ten") "to" ; this_Quant = demPronFormsAdjective (tenDemPronForms "" ** {msgen = "toh"}) "to" ;
to_Prep = mkPrep "do" Gen ; to_Prep = mkPrep "do" Gen ;
with_Prep = mkPrep (pre {"s" => "so" ; _ => "s"}) Ins ; with_Prep = mkPrep (pre {"s" => "so" ; _ => "s"}) Ins ;