1
0
forked from GitHub/gf-rgl

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