1
0
forked from GitHub/gf-rgl

Slovak possessives (some forms to be checked)

This commit is contained in:
aarneranta
2020-10-12 13:24:20 +02:00
parent e48097f8a5
commit 5c9885d0a2
4 changed files with 76 additions and 6 deletions

View File

@@ -39,7 +39,7 @@ concrete CatSlo of Cat =
Quant = {s : Gender => Number => Case => Str} ; -- same as AP
Num = Determiner ;
Card = Determiner ; -- {s : Gender => Case => Str ; size : NumSize} ;
Pron = PronForms ;
Pron = PronForms ** {poss : DemPronForms} ;
Adv = {s : Str} ;
Prep = ResSlo.ComplementCase ; -- {s : Str ; c : Case ; hasPrep : Bool} ;

View File

@@ -55,6 +55,8 @@ lin
a = pron.a ;
hasClit = True ;
} ;
PossPron pron = justDemPronFormsAdjective pron.poss ;
UsePN pn = {
s,clit,prep = \\c => pn.s ! c ;

View File

@@ -821,6 +821,58 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
} ;
possessivePron : Agr -> DemPronForms = \a -> case a of {
Ag _ Sg P1 => otcovA "moj" ** {
msnom = "môj" ; msgen = "môjho" ; msdat = "môjmu" ;
msins = "mojím" ;
ampnom = "moji" ;
nsnom, fpnom = "moje" ;
pgen = "mojich" ;
pdat = "mojim" ;
pins = "mojimi" ;
} ;
Ag _ Sg P2 => otcovA "tvoj" ** {
msnom = "tvoj" ; msgen = "tvojho" ; msdat = "tvojmu" ;
msins = "tvojím" ;
ampnom = "tvoji" ;
nsnom, fpnom = "tvoje" ;
pgen = "tvojich" ;
pdat = "tvojim" ;
pins = "tvojimi" ;
} ;
Ag _ Pl P1 => otcovA "naš" ** {
msnom = "náš" ; msgen = "nášho" ; msdat = "nášmu" ;
msins = "naším" ;
ampnom = "naši" ;
nsnom, fpnom = "naše" ;
pgen = "našich" ;
pdat = "našim" ;
pins = "našimi" ;
} ;
Ag _ Pl P2 => otcovA "vaš" ** {
msnom = "váš" ; msgen = "vášho" ; msdat = "vášmu" ;
msins = "vaším" ;
ampnom = "vaši" ;
nsnom, fpnom = "vaše" ;
pgen = "vašich" ;
pdat = "vašim" ;
pins = "vašimi" ;
} ;
Ag (Masc _ | Neutr) Sg P3 => invarDemPronForms "jeho" ** {pdat = "jeho"} ;
Ag Fem Sg P3 => invarDemPronForms "jej" ** {pdat = "jej"} ;
Ag _ Pl P3 => invarDemPronForms "ich" ** {pdat = "ich"}
} ;
mkPron : Agr -> PronForms ** {poss : DemPronForms} = \a ->
personalPron a ** {poss = possessivePron a} ;
--------------------------------
-- demonstrative pronouns, used for Quant and Det
@@ -851,6 +903,20 @@ oper
_ => adjAdj.s ! g ! n ! c
} + s
} ;
justDemPronFormsAdjective : DemPronForms -> Adjective =
\dem ->
let
demAdj = dem ** {fsdat = dem.fsgen} ;
adjAdj = adjFormsAdjective demAdj
in {
s = \\g,n,c => case <g,n,c> of {
<_,Pl,Dat> => dem.pdat ;
<Masc Anim, Pl, Acc> => dem.pgen ;
<Masc Inanim | Fem | Neutr, Pl, Nom|Acc> => dem.fpnom ;
_ => adjAdj.s ! g ! n ! c
}
} ;
Determiner : Type = {
s : Gender => Case => Str ;

View File

@@ -20,9 +20,11 @@ lin
to_Prep = mkPrep "do" Gen ;
with_Prep = mkPrep (pre {"s" => "so" ; _ => "s"}) Ins ;
i_Pron = personalPron (Ag (Masc Anim) Sg P1) ;
youSg_Pron = personalPron (Ag (Masc Anim) Sg P2) ;
he_Pron = personalPron (Ag (Masc Anim) Sg P3) ;
she_Pron = personalPron (Ag Fem Sg P3) ;
i_Pron = mkPron (Ag (Masc Anim) Sg P1) ; --- to add Fem pronouns in Extend
youSg_Pron = mkPron (Ag (Masc Anim) Sg P2) ;
he_Pron = mkPron (Ag (Masc Anim) Sg P3) ;
she_Pron = mkPron (Ag Fem Sg P3) ;
we_Pron = mkPron (Ag (Masc Anim) Pl P1) ;
youPl_Pron = mkPron (Ag (Masc Anim) Pl P2) ;
they_Pron = mkPron (Ag (Masc Anim) Pl P3) ;
}