Hrv: copulas and personal pronouns

This commit is contained in:
Aarne Ranta
2022-09-27 09:58:03 +02:00
parent 7a0b1eed34
commit b5ea76dd79
2 changed files with 103 additions and 145 deletions

View File

@@ -465,14 +465,15 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
-- just an example of a traditional paradigm -- just an example of a traditional paradigm
---- TODO other traditional paradigms ---- TODO other traditional paradigms
aeiVerbForms : Str -> VerbForms = \citati -> aeiVerbForms : Str -> Str -> Str -> VerbForms = \citati, citam, citao ->
let let
cita = Predef.tk 2 citati ; cita = init citam ;
u = case last cita of { u = case last cita of {
"a" => "aju" ; "a" => "aju" ;
"e" => "u" ; "e" => "u" ;
"i" => "e" "i" => "e"
} ; } ;
cital = init citao + "l" ;
in table { in table {
VInf => citati ; VInf => citati ;
VPres Sg P1 => cita + "m" ; VPres Sg P1 => cita + "m" ;
@@ -481,176 +482,131 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
VPres Pl P1 => cita + "mo" ; VPres Pl P1 => cita + "mo" ;
VPres Pl P2 => cita + "te" ; VPres Pl P2 => cita + "te" ;
VPres pl P3 => init cita + u ; VPres pl P3 => init cita + u ;
VPastPart (Masc _) Sg => cita + "o" ; VPastPart (Masc _) Sg => citao ;
VPastPart Fem Sg => cita + "la" ; VPastPart Fem Sg => cital + "a" ;
VPastPart Neutr Sg => cita + "lo" ; VPastPart Neutr Sg => cital + "o" ;
VPastPart (Masc _) Pl => cita + "li" ; VPastPart (Masc _) Pl => cital + "i" ;
VPastPart Fem Pl => cita + "le" ; VPastPart Fem Pl => cital + "e" ;
VPastPart Neutr Pl => cita + "la" VPastPart Neutr Pl => cital + "a"
} ; } ;
{-
-- copula
jesam_Copula : {short, long, negative : Number => Person => Str} =
let
sam : Number => Person => Str = table {
Sg => table {
P1 => "sam" ;
P2 => "si" ;
P3 => "je"
} ;
Pl => table {
P1 => "smo" ;
P2 => "ste" ;
P3 => "su"
}
}
in {
short = sam ;
long = \\n,p => case <n,p> of {
<Sg,P3> => "jeste" ; --- wiki: jest(e)
_ => sam ! n ! p
} ;
negative = \\n,p => "ni" + sam ! n ! p
} ;
biti_VerbForms : VerbForms = aeiVerbForms "biti" "budem" "bio" ;
imati_VerbForms : VerbForms = aeiVerbForms "imati" "imam" "imao" ;
--------------------------- ---------------------------
-- Pronouns -- Pronouns
PronForms : Type = { PronForms : Type = {
nom, cnom, -- cnom is the pro-drop subject nom,
gen, cgen,pgen, -- bare, clitic, prepositional gen, cgen, -- bare, clitic (also as Acc)
acc, cacc,pacc, dat, cdat, -- also as Loc
dat, cdat,pdat, ins : Str ;
loc,
ins,pins : Str ;
a : Agr a : Agr
} ; } ;
---- TODO: possessives
personalPron : Agr -> PronForms = \a -> personalPron : Agr -> PronForms = \a ->
{a = a ; cnom = []} ** {a = a ; cnom = []} **
case a of { case a of {
Ag _ Sg P1 => { Ag _ Sg P1 => {
nom = "ja" ; nom = "ja" ;
gen,acc,pgen,pacc = "mňa" ; gen = "mene" ;
cgen,cacc = "ma" ; cgen = "ma" ;
dat,pdat,loc = "mne" ; dat = "meni" ;
cdat = "mi" ; cdat = "mi" ;
ins,pins = "mnou" ins = "mnom"
} ; } ;
Ag _ Sg P2 => { Ag _ Sg P2 => {
nom = "ty" ; nom = "ti" ;
gen,acc,pgen,pacc = "teba" ; gen = "tebe" ;
cgen,cacc = "ťa" ; cgen = "te" ;
dat,pdat,loc = "tebe" ; dat = "tebi" ;
cdat = "ti" ; cdat = "ti" ;
ins,pins = "tebou" ins = "tobom"
} ;
Ag (Masc _) Sg P3 => {
nom = "on" ;
gen,acc = "jeho" ;
cgen,cacc = "ho" ;
pgen,pacc = "neho" ;
---- pgen = "ňho"; ---- bind, only with prepositions "do", "u"
---- pgen = "ň"; ---- bind, only with preposition "do", "u"
dat = "jemu" ;
---- pacc = "eň" ; ---- bind, only with preposition "cez"
---- pacc = "ňho" ; ---- bind, only with prepositions "na", "pre", "za"
---- pacc = "ň" ; ---- bind, only with preposition "na", "pre", "za"
cdat = "mu" ;
pdat = "nemu" ;
loc = "ňom" ;
ins,pins = "ním" ;
} ; } ;
Ag Fem Sg P3 => { Ag Fem Sg P3 => {
nom = "ona" ; nom = "ona" ;
gen,cgen,pgen,acc,cacc,pacc = "ju" ; gen = "nje" ;
cdat = "jej" ; cgen = "je" ;
dat,pdat,loc = "nej" ; dat = "njoj" ;
ins,pins = "" ; cdat = "joj" ;
ins = "njom"
} ; } ;
Ag Neutr Sg P3 => { Ag g Sg P3 => {
nom = "ono" ; nom = case g of {
gen, acc = "jeho" ; Masc _ => "on" ;
cgen,cacc = "ho" ; _ => "ono"
pgen = "neho" ; } ;
---- pgen = "ňho"; ---- bind, only with prepositions "do", "u" gen = "njega" ;
---- pgen = "ň"; ---- bind, only with preposition "do", "u" cgen = "ga" ;
dat = "jemu" ; dat = "njemu" ;
---- pacc = "eň" ; ---- bind, only with preposition "cez"
---- pacc = "ňho" ; ---- bind, only with prepositions "na", "pre", "za"
---- pacc = "ň" ; ---- bind, only with preposition "na", "pre", "za"
pacc = "jeho"; ---- doublecheck
cdat = "mu" ; cdat = "mu" ;
pdat = "nemu" ; ins = "njim"
loc = "ňom" ;
ins,pins = "ním" ;
} ; } ;
Ag _ Pl P1 => { Ag _ Pl P1 => {
nom = "my" ; nom = "mi" ;
gen,acc, gen, cgen = "nas" ;
cgen,cacc, dat, ins = "nama" ;
pgen,pacc, cdat = "nam"
loc = "nás" ;
dat,cdat,pdat = "nám" ;
ins,pins = "nami" ;
} ; } ;
Ag _ Pl P2 => { Ag _ Pl P2 => {
nom = "vy" ; nom = "vi" ;
gen,acc, gen, cgen = "vas" ;
cgen,cacc, dat, ins = "vama" ;
pgen,pacc, cdat = "vam"
loc = "vás" ;
dat,cdat,pdat = "vám" ;
ins,pins = "vami" ;
} ; } ;
Ag (Masc Anim) Pl P3 => { Ag g Pl P3 => {
nom = "oni" ; nom = case g of {
gen,cgen,acc,cacc = "ich" ; Masc _ => "oni" ;
pgen,pacc = "nich" ; Fem => "one" ;
dat,cdat = "im" ; Neutr => "ona"
pdat = "nim" ;
loc = "nich" ;
ins,pins = "nimi" ;
} ; } ;
Ag _ Pl P3 => { gen = "njih" ;
nom = "ony" ; cgen = "ih" ;
gen,cgen,acc,cacc = "ich" ; dat, ins = "njima" ;
pgen,pacc = "ne" ; cdat = "im"
dat,cdat = "im" ;
pdat = "nim" ;
loc = "nich" ;
ins,pins = "nimi" ;
} }
} ; } ;
possessivePron : Agr -> DemPronForms = \a -> case a of { possessivePron : Agr -> AdjForms = \a -> case a of {
Ag _ Sg P1 => velikA "moj" ;
Ag _ Sg P1 => otcovA "moj" ** { Ag _ Sg P2 => velikA "tvoj" ;
msnom = "môj" ; msgen = "môjho" ; msdat = "môjmu" ; Ag (Masc _) Sg P3 => velikA "njegov" ;
msins = "mojím" ; Ag (Fem|Neutr) Sg P3 => velikA "njezin" ; -- BCMS: Hrv: otherwise njen
ampnom = "moji" ; Ag _ Pl P1 => velikA "naš" ;
nsnom, fpnom = "moje" ; Ag _ Pl P2 => velikA "vaš" ;
pgen = "mojich" ; Ag _ Pl P3 => velikA "njihov"
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"}
} ; } ;
{-
reflPossessivePron : DemPronForms = otcovA "svoj" ** { reflPossessivePron : DemPronForms = otcovA "svoj" ** {
msnom = "svoj" ; msgen = "svojho" ; msdat = "svojmu" ; msnom = "svoj" ; msgen = "svojho" ; msdat = "svojmu" ;
msins = "svojím" ; msins = "svojím" ;
@@ -660,10 +616,12 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
pdat = "svojim" ; pdat = "svojim" ;
pins = "svojimi" ; pins = "svojimi" ;
} ; } ;
-}
mkPron : Agr -> PronForms ** {poss : DemPronForms} = \a -> mkPron : Agr -> PronForms ** {poss : AdjForms} = \a ->
personalPron a ** {poss = possessivePron a} ; personalPron a ** {poss = possessivePron a} ;
{-
-------------------------------- --------------------------------
-- demonstrative pronouns, used for Quant and Det -- demonstrative pronouns, used for Quant and Det

View File

@@ -28,6 +28,6 @@ cc -table -unqual adjFormsAdjective (velikA "mastan")
cc -table -unqual adjFormsAdjective (velikA "gladan") cc -table -unqual adjFormsAdjective (velikA "gladan")
cc -table -unqual adjFormsAdjective (velikA "nizak") cc -table -unqual adjFormsAdjective (velikA "nizak")
cc -table -unqual aeiVerbForms ("čitati") cc -table -unqual aeiVerbForms "čitati" "čitam" "čitao"
cc -table -unqual aeiVerbForms ("raditi") cc -table -unqual aeiVerbForms "raditi" "radem" "radio"