Files
gf-rgl/src/latin/AdjectiveLat.gf
2019-01-14 16:40:07 +01:00

54 lines
1.4 KiB
Plaintext

concrete AdjectiveLat of Adjective = CatLat ** open ResLat, Prelude in {
lin
-- PositA : A -> AP ; -- warm
PositA a =
{ s = \\ag => a.s ! Posit ! ag };
-- ComparA : A -> NP -> AP ; -- warmer than I
ComparA a np = {
s = \\ag => a.s ! Compar ! ag ++ "quam" ++ np.s ! Nom ;
} ;
-- ComplA2 : A2 -> NP -> AP ; -- married to her
ComplA2 a np = {
s = \\ag => a.s ! Posit ! ag ++ a.c.s ++ np.s ! a.c.c ;
} ;
-- ReflA2 : A2 -> AP -- married to myself
ReflA2 a = {
s = \\ag => a.s ! Posit ! ag ++ a.c.s ++
table { Acc => "memet" ; _ => "egomet" } ! a.c.c;
} ;
-- UseA2 : A2 -> AP ; -- married
UseA2 = PositA ;
-- UseComparA : A -> AP ; -- warmer
UseComparA a =
{ s = \\ag => a.s ! Compar ! ag };
-- CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John
CAdvAP cadv ap np =
{ s = \\ag => cadv.s ++ ap.s ! ag ++ cadv.p ++ np.s ! Nom } ;
-- The superlative use is covered in $Ord$.
-- AdjOrd : Ord -> AP ; -- warmest
AdjOrd a = { s = table { Ag g n c => a.s ! g ! n ! c } } ;
-- SentAP : AP -> SC -> AP ; -- good that she is here
SentAP ap sc =
{ s = \\a => ap.s ! a ++ sc.s } ;
-- AdAP : AdA -> AP -> AP ; -- very warm
AdAP ada ap =
{ s = \\agr => ada.s ++ ap.s ! agr } ;
-- AdvAP : AP -> Adv -> AP ; -- warm by nature
AdvAP ap adv =
{ s = \\ag => ap.s ! ag ++ adv.s ! Posit} ;
}