1
0
forked from GitHub/gf-rgl

LangHrv compiles now, but with a partial Slovak lexicon

This commit is contained in:
Aarne Ranta
2022-09-28 11:29:03 +02:00
parent 7c2c519e50
commit 13fac41ce6
10 changed files with 81 additions and 146 deletions
+12 -55
View File
@@ -26,6 +26,8 @@ oper
= Dat ;
accusative : Case
= Acc ;
vocative : Case
= Voc ;
locative : Case
= Loc ;
instrumental : Case
@@ -39,8 +41,8 @@ oper
mkN = overload {
mkN : (nom : Str) -> N
= \nom -> lin N (guessNounForms nom) ;
mkN : (nom,gen : Str) -> Gender -> N
= \nom,gen,g -> lin N (declensionNounForms nom gen g) ;
mkN : (nom,gen : Str) -> Gender -> N ---- TODO
= \nom,gen,g -> lin N (guessNounForms nom) ;
} ;
-- The following standard declensions can be used with good accuracy.
@@ -49,34 +51,7 @@ oper
-- The default extensions are shown in comments; if the default is correct, no extension is needed.
-- Notice that some paradigms take two arguments, some take one.
chlapN : Str -> N
= \s -> lin N (R.chlapN s) ;
hrdinaN : Str -> N
= \s -> lin N (R.hrdinaN s) ;
dubN : Str -> N
= \s -> lin N (R.dubN s) ;
strojN : Str -> N
= \s -> lin N (R.strojN s) ;
ponyN : Str -> N
= \s -> lin N (R.ponyN s) ;
zenaN : (snom, pgen : Str) -> N
= \s,p -> lin N (R.zenaN s) ** {pgen = p} ;
ulicaN : (snom, pgen : Str) -> N
= \s,p -> lin N (R.ulicaN s) ** {pgen = p} ;
dlanN : (snom, pgen : Str) -> N
= \s,p -> lin N (R.dlanN s p) ;
kostN : (snom, pgen : Str) -> N
= \s,p -> lin N (R.kostN s p) ;
mestoN : (snom, pgen : Str) -> N
= \s,p -> lin N (R.mestoN s) ** {pgen = p} ;
srdceN : (snom, pgen : Str) -> N
= \s,p -> lin N (R.srdceN s) ** {pgen = p} ;
vysvedcenieN : Str -> N
= \s -> lin N (R.vysvedcenieN s) ;
dievcaN : Str -> N
= \s -> lin N (R.dievcaN s) ;
dievceniecN : Str -> N
= \s -> lin N (R.dievceniecN s) ;
---- TODO
-- The full definition of the noun record is
-- {
@@ -92,27 +67,9 @@ oper
mkA = overload {
mkA : Str -> A
= \s -> lin A (guessAdjForms s)
= \s -> lin A (velikA s)
} ;
peknyA : Str -> A
= \s -> lin A (R.peknyA s) ;
krasnyA : Str -> A
= \s -> lin A (R.krasnyA s) ;
cudziA : Str -> A
= \s -> lin A (R.cudziA s) ;
rydziA : Str -> A
= \s -> lin A (R.rydziA s) ;
otcovA : Str -> A
= \s -> lin A (R.otcovA s) ;
paviA : Str -> A
= \s -> lin A (R.paviA s) ;
invarA : Str -> A
= \s -> lin A (invarAdjForms s) ;
mkA2 : A -> Prep -> A2
= \a,p -> lin A2 (a ** {c = p}) ;
-- the full definition of the adjective record is
-- {
@@ -125,12 +82,12 @@ oper
-- Verbs
mkV2 = overload {
mkV2 : VerbForms -> VerbForms ** {c : ComplementCase}
= \vf -> vf ** {c = {s = [] ; c = Acc ; hasPrep = False}} ;
mkV2 : VerbForms -> Case -> VerbForms ** {c : ComplementCase}
= \vf,c -> vf ** {c = {s = [] ; c = c ; hasPrep = False}} ;
mkV2 : VerbForms -> ComplementCase -> VerbForms ** {c : ComplementCase}
= \vf,c -> vf ** {c = c} ;
mkV2 : VerbForms -> V2
= \vf -> lin V2 {s = vf ; c = {s = [] ; c = Acc ; hasPrep = False}} ;
mkV2 : VerbForms -> Case -> V2
= \vf,c -> lin V2 {s = vf ; c = {s = [] ; c = c ; hasPrep = False}} ;
mkV2 : VerbForms -> ComplementCase -> V2
= \vf,c -> lin V2 {s = vf ; c = c} ;
} ;
------------------------