Files
gf-rgl/src/morphodict/saldo/SaldoSwe.header
2020-03-03 18:10:02 +01:00

51 lines
1.2 KiB
Plaintext

concrete SaldoSwe of Saldo =
CatSwe [N,A,V,Adv,Prep,PN] **
open
ParadigmsSwe, Prelude
in
{
-- to deal with incomplete paradigms
--- the values could be in special categories to avoid overgeneration
oper
mkVDep : Str -> V
= \v -> case v of {
x + "as" => depV (mkV (x + "a")) ;
x + "es" => depV (mkV (x + "er")) ;
x + "s" => depV (mkV (x + "er")) ;
_ => Predef.error (v ++ "not for mkVDep")
} ;
mkVIntr : (_,_,_,_,_ : Str) -> V
= \i,_,_,p,pt -> mkV i p pt ; ---
mkAUtr : (_,_,_,_ : Str) -> A
= \u,p,c,s -> mkA u u p c s ; ---
mkAComp : (_,_,_ : Str) -> A
= \u,n,p -> compoundA (mkA u n) ; ---
mkPNDef : Str -> PN
= \s -> case s of {
_ + "n" => mkPN s utrum ;
_ => mkPN s neutrum
} ;
mkPNIndef : Str -> PN
= \s -> mkPN s neutrum ; ---
mkNSg : (_,_ : Str) -> N
= \i,d -> case d of {
_ + "n" => mkN i utrum ; ---
_ => mkN i neutrum ---
} ;
mkNPl : (_,_ : Str) -> N
= \i,d -> case i of {
s + "or" => mkN (s + "a") ; ---
s + ("ar"|"er") => mkN s i ; ---
s + "en" => mkN (s + "e") i ; ---
_ => mkN i i ---
} ;