1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/lithuanian/ParadigmsAdjectiveLit.gf
2022-12-20 14:07:34 +02:00

117 lines
3.2 KiB
Plaintext

--# -path=.:../prelude:../common
--# -coding=utf8
-- L.Boizou, 2022 <lboizou@gmail.com>
resource ParadigmsAdjectiveLit = ResLit ** open Prelude, (Predef=Predef), MorphoAdjectiveLit in {
flags coding=utf8;
oper mkComp : Str -> AdjForms
= \adj ->
case adj of {
s + ("ias" | "as" | "us" | "is" | "ys") => adj2aModel (s + "esn") ;
_ => Predef.error ("Error (mkAdjComp): incorrect adjective form:" + adj)
} ;
oper mkSup : Str -> AdjForms
= \adj ->
case adj of {
s + "ias" => adj1aModel (s + "iausi") ;
s + ("as" | "us" | "is" | "ys") => adj1aModel ((soften s) + "iausi") ;
_ => Predef.error ("Error (mkAdjSup): incorrect adjective form:" + adj)
} ;
oper mkAdvPos : Str -> Str
= \adj ->
case adj of {
s + ("us" | "is" | "ys") => (soften s) + "iai" ;
s + "as" => s + "ai" ;
_ => Predef.error ("Error (mkAdvPos): incorrect adjective form:" + adj)
} ;
oper mkAdvComp : Str -> Str
= \adj ->
case adj of {
s + "ias" => s + "iau" ;
s + ("as" | "us" | "is" | "ys") => (soften s) + "iau" ;
_ => Predef.error ("Error (mkAdvComp): incorrect adjective form:" + adj)
} ;
-- didesnis -> didžiau
oper mkAdvCompFromComp : Str -> Str
= \adj ->
case adj of {
s + ("esnis") => s + "iau" ;
_ => Predef.error ("Error (mkAdvCompFromComp): incorrect adjective form:" + adj)
} ;
oper mkAdvSup : Str -> Str
= \adj ->
case adj of {
s + ("ias" | "as" | "us" | "is" | "ys") => s + "iausiai" ;
_ => Predef.error ("Error (mkAdvSup): incorrect adjective form:" + adj)
} ;
-- oper for simple forms
oper mkRegAdj = overload {
mkRegAdj : Str -> Adj =
\pos -> {
pos = guessAdjModel pos;
comp = mkComp pos;
super = mkSup pos;
advpos = mkAdvPos pos;
advcomp = mkAdvComp pos;
advsuper = mkAdvSup pos
};
mkRegAdj : Str -> Str -> Str -> Adj =
\pos, comp, sup -> {
pos = guessAdjModel pos;
comp = guessAdjModel comp;
super = guessAdjModel sup;
advpos = mkAdvPos pos;
advcomp = mkAdvCompFromComp comp;
advsuper = mkAdvPos sup
};
};
-- Another option : right_Ord = { s = mkAtable (guessAdjModel "dešinys") };
-- A revoir : nonExist provoque une erreur
{-
oper mkNoDegreeAdj : Str -> Adj =
\pos -> {
pos = guessAdjModel pos;
comp = nonExist;
super = nonExist;
advpos = nonExist;
advcomp = nonExist;
advsuper = nonExist;
};
-}
oper mkCompAdj = overload {
-- utilise par jaki, taki, de morphoPol...
-- a supprimer ou renommer
-- le nom ne convient pas...
mkCompAdj : Str -> Adj =
\pos -> {
pos = guessAdjModel pos;
comp = mkComp pos;
super = mkSup pos;
advpos = "["++pos ++ [": the adverb positive form does not exist]"];
advcomp = "["++pos ++ [": the adverb comparative form does not exist]"];
advsuper = "["++pos ++ [": the adverb superlative form does not exist]"]
};
};
addComplToAdj : Adj -> Str -> Case -> (Adj ** { c:Complement });
addComplToAdj a s c = { pos = a.pos; comp=a.comp; super=a.super;
advpos=a.advpos; advcomp=a.advcomp; advsuper=a.advsuper;
c = mkCompl s c
};
}