Hrv: started adjectives

This commit is contained in:
Aarne Ranta
2022-09-22 11:31:58 +02:00
parent 0500091297
commit e7a5daa17f
4 changed files with 156 additions and 48 deletions

View File

@@ -312,7 +312,6 @@ palatalize : Str -> Str = \s -> case s of {
pgen = zen + "a" ; pgen = zen + "a" ;
} ; } ;
{-
--------------------------- ---------------------------
@@ -328,19 +327,17 @@ palatalize : Str -> Str = \s -> case s of {
msnom, fsnom, nsnom : Str ; msnom, fsnom, nsnom : Str ;
msgen, fsgen : Str ; -- nsgen = msgen msgen, fsgen : Str ; -- nsgen = msgen
msdat : Str ; -- nsdat = msdat msdat : Str ; -- nsdat = msdat
fsacc : Str ; -- amsacc = msgen, imsacc = msnom, nsacc = nsnom fsdat : Str ; -- fsloc = fsdat
msloc : Str ; -- fsloc = fsdat, nsloc = msloc fsacc : Str ; --
msins, fsins : Str ; -- nsins = msins, pdat = msins msloc : Str ; -- nsloc, fsins = msloc
msins : Str ; -- nsins, pdat, ploc, pins = msins
ampnom : Str ; -- *pnom = nsnom mpnom : Str ; -- mpvoc = mpnom
pgen : Str ; -- pgen : Str ; --
-- pdat = msins, ampacc = pgen, *pacc = nsnom, ploc = pgen
pins : Str ;
} ; } ;
invarAdjForms : Str -> AdjForms = \s -> { invarAdjForms : Str -> AdjForms = \s -> {
msnom, fsnom, nsnom, msgen, fsgen, msdat, fsacc, msnom, fsnom, nsnom, msgen, fsgen, msdat,
msloc, msins, fsins, ampnom, pgen, pins = s ; fsdat, fsacc, msloc, msins, fsins, mpnom, pgen = s ;
} ; } ;
-- used in PositA but will also work in Compar and Superl by calling their record fields -- used in PositA but will also work in Compar and Superl by calling their record fields
@@ -348,30 +345,29 @@ invarAdjForms : Str -> AdjForms = \s -> {
adjFormsAdjective : AdjForms -> Adjective = \afs -> { adjFormsAdjective : AdjForms -> Adjective = \afs -> {
s = \\g,n,c => case <n,c,g> of { s = \\g,n,c => case <n,c,g> of {
<Sg, Nom, Masc _> <Sg, Nom|Voc, Masc _>
| <Sg, Acc, Masc Inanim> => afs.msnom ; | <Sg, Acc, Masc Inanim> => afs.msnom ;
<Sg, Nom, Fem> => afs.fsnom ; <Sg, Nom|Voc, Fem>
<Sg, Nom|Acc, Neutr> | <Pl, Nom|Acc|Voc, Neutr> => afs.fsnom ;
| <Pl, Nom|Acc, Masc Inanim|Fem|Neutr> => afs.nsnom ; <Sg, Nom|Acc|Voc, Neutr> => afs.nsnom ;
<Sg, Gen, Masc _ | Neutr> <Sg, Gen, Masc _ | Neutr>
| <Sg, Acc, Masc Anim> => afs.msgen ; | <Sg, Acc, Masc Anim> => afs.msgen ;
<Sg, Gen|Dat|Loc, Fem> => afs.fsgen ; <Sg, Gen, Fem>
| <Pl, Nom|Acc|Voc, Fem>
| <Pl, Acc, Masc _> => afs.fsgen ;
<Sg, Dat, Masc _|Neutr> => afs.msdat ; <Sg, Dat, Masc _|Neutr> => afs.msdat ;
<Sg, Dat|Loc, Fem> => afs.fsdat ;
<Sg, Acc, Fem> => afs.fsacc ; <Sg, Acc, Fem> => afs.fsacc ;
<Sg, Loc, Masc _|Neutr> => afs.msloc ; <Sg, Loc, Masc _|Neutr>
| <Sg, Ins, Fem> => afs.msloc ;
<Sg, Ins, Masc _|Neutr> <Sg, Ins, Masc _|Neutr>
| <Pl,Dat,_> => afs.msins ; | <Pl,Dat|Loc|Ins, _> => afs.msins ;
<Sg, Ins, Fem> => afs.fsins ; <Pl, Nom|Voc, Masc _> => afs.mpnom ;
<Pl, Gen,_> => afs.pgen
<Pl, Nom, Masc Anim> => afs.ampnom ;
<Pl, Gen|Loc,_>
| <Pl, Acc, Masc Anim> => afs.pgen ;
<Pl, Ins,_> => afs.pins
} }
} ; } ;
{-
guessAdjForms : Str -> AdjForms guessAdjForms : Str -> AdjForms
= \s -> case s of { = \s -> case s of {
_ + "ý" => peknyA s ; _ + "ý" => peknyA s ;
@@ -381,28 +377,25 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
_ + ("ov"|"in") => otcovA s ; _ + ("ov"|"in") => otcovA s ;
_ => otcovA (""+s) ---- Predef.error ("no mkA for" ++ s) _ => otcovA (""+s) ---- Predef.error ("no mkA for" ++ s)
} ; } ;
-}
velikA : Str -> AdjForms = \velik ->
-- hard consonant + y {
msnom = velik ;
peknyA : Str -> AdjForms = \pekny -> fsnom = velik + "a" ;
let pekn = init pekny nsnom = velik + "o" ;
in { msgen = velik + "og" ;
msnom = pekn + "ý" ; fsgen = velik + "e" ;
fsnom = pekn + "á" ; msdat = velik + "omu" ;
nsnom = pekn + "é" ; fsdat = velik + "oj" ;
msgen = pekn + "ého" ; fsacc = velik + "u" ;
fsgen = pekn + "ej" ; msloc = velik + "om" ;
msdat = pekn + "ému" ; msins = velik + "im" ;
fsacc = pekn + "ú" ; mpnom = velik + "i" ;
msloc = pekn + "om" ; pgen = velik + "ih" ;
msins = pekn + "ým" ;
fsins = pekn + "ou" ;
ampnom = pekn + "í" ;
pgen = pekn + "ých" ;
pins = pekn + "ými" ;
} ; } ;
{-
-- if the penultimate has accent, e.g. krásny, the last accent disappears -- if the penultimate has accent, e.g. krásny, the last accent disappears
krasnyA : Str -> AdjForms = \krasny -> krasnyA : Str -> AdjForms = \krasny ->
let let

View File

@@ -0,0 +1,57 @@
AdverbEng.PrepNP
ConstructorsEng.ComplV2
ConstructorsEng.DetArtCard
ConstructorsEng.the_Det
NounEng.AdvCN
NounEng.DetCN
NounEng.IndefArt
NounEng.UseN
NounEng.UsePN
ParadigmsEng.regN
ParadigmsEng.regPN
SentenceEng.PredVP
StructuralEng.have_V2
StructuralEng.in_Prep
StructuralEng.possess_Prep
SymbolEng.IntPN
SymbolEng.SymbNum
SymbolicEng.mkSymb
VerbEng.CompAdv
VerbEng.CompNP
VerbEng.UseComp
AdjectiveEng.AdjOrd
AdjectiveEng.PositA
ConjunctionEng.BaseNP
ConjunctionEng.BaseS
ConjunctionEng.ConjNP
ConjunctionEng.ConjS
ConjunctionEng.ConsNP
ConjunctionEng.ListNP,
ExtendEng.CardCNCard
IdiomEng.ExistNP
IdiomEng.ExistNPAdv
NounEng.AdNum
NounEng.AdjCN
NounEng.DetNP
NounEng.DetQuant
NounEng.NumSg
NounEng.OrdSuperl
NounEng.PossPron
NounEng.RelCN
NounEng.UsePron
ParadigmsEng.mkAdN
aradigmsEng.mkAdv
ParadigmsEng.mkOrd
ParadigmsEng.regA
PhraseEng.NoPConj
PhraseEng.NoVoc
PhraseEng.PhrUtt
PhraseEng.UttS
RelativeEng.RelVP
StructuralEng.and_Conj
StructuralEng.it_Pron
StructuralEng.somewhere_Adv;
StructuralEng.they_Pron
StructuralEng.with_Prep
VerbEng.CompAP

View File

@@ -328,3 +328,59 @@ s . Pl => Voc => žene
s . Pl => Loc => ženama s . Pl => Loc => ženama
s . Pl => Ins => ženama s . Pl => Ins => ženama
g . Fem g . Fem
s . Masc Anim => Sg => Nom => velik
s . Masc Anim => Sg => Gen => velikog
s . Masc Anim => Sg => Dat => velikomu
s . Masc Anim => Sg => Acc => velikog
s . Masc Anim => Sg => Voc => velik
s . Masc Anim => Sg => Loc => velikom
s . Masc Anim => Sg => Ins => velikim
s . Masc Anim => Pl => Nom => veliki
s . Masc Anim => Pl => Gen => velikih
s . Masc Anim => Pl => Dat => velikim
s . Masc Anim => Pl => Acc => velike
s . Masc Anim => Pl => Voc => veliki
s . Masc Anim => Pl => Loc => velikim
s . Masc Anim => Pl => Ins => velikim
s . Masc Inanim => Sg => Nom => velik
s . Masc Inanim => Sg => Gen => velikog
s . Masc Inanim => Sg => Dat => velikomu
s . Masc Inanim => Sg => Acc => velik
s . Masc Inanim => Sg => Voc => velik
s . Masc Inanim => Sg => Loc => velikom
s . Masc Inanim => Sg => Ins => velikim
s . Masc Inanim => Pl => Nom => veliki
s . Masc Inanim => Pl => Gen => velikih
s . Masc Inanim => Pl => Dat => velikim
s . Masc Inanim => Pl => Acc => velike
s . Masc Inanim => Pl => Voc => veliki
s . Masc Inanim => Pl => Loc => velikim
s . Masc Inanim => Pl => Ins => velikim
s . Fem => Sg => Nom => velika
s . Fem => Sg => Gen => velike
s . Fem => Sg => Dat => velikoj
s . Fem => Sg => Acc => veliku
s . Fem => Sg => Voc => velika
s . Fem => Sg => Loc => velikoj
s . Fem => Sg => Ins => velikom
s . Fem => Pl => Nom => velike
s . Fem => Pl => Gen => velikih
s . Fem => Pl => Dat => velikim
s . Fem => Pl => Acc => velike
s . Fem => Pl => Voc => velike
s . Fem => Pl => Loc => velikim
s . Fem => Pl => Ins => velikim
s . Neutr => Sg => Nom => veliko
s . Neutr => Sg => Gen => velikog
s . Neutr => Sg => Dat => velikomu
s . Neutr => Sg => Acc => veliko
s . Neutr => Sg => Voc => veliko
s . Neutr => Sg => Loc => velikom
s . Neutr => Sg => Ins => velikim
s . Neutr => Pl => Nom => velika
s . Neutr => Pl => Gen => velikih
s . Neutr => Pl => Dat => velikim
s . Neutr => Pl => Acc => velika
s . Neutr => Pl => Voc => velika
s . Neutr => Pl => Loc => velikim
s . Neutr => Pl => Ins => velikim

View File

@@ -23,3 +23,5 @@ cc -table -unqual nounFormsNoun (poljeN "polje") neuter
cc -table -unqual nounFormsNoun (zenaN "žena") feminine cc -table -unqual nounFormsNoun (zenaN "žena") feminine
cc -table -unqual adjFormsAdjective (velikA "velik")