Files
gf-rgl/src/hungarian/AdjectiveHun.gf
2020-04-26 21:17:14 +02:00

75 lines
1.9 KiB
Plaintext

concrete AdjectiveHun of Adjective = CatHun ** open ResHun, Prelude in {
flags optimize=all_subs ;
lin
-- : A -> AP ;
PositA a = emptyAP ** {
s = \\n,c =>
let adj : Noun = (a ** {s = a.s ! Posit}) in
caseFromStem glue adj c n ;
} ;
-- : A -> NP -> AP ;
ComparA a np = UseComparA a ** {
compl = \\n => applyAdp (caseAdp Ade) np ;
-- compl = applyAdp (prepos Nom "mint") np ;
} ;
-- : A2 -> NP -> AP ; -- married to her
ComplA2 a2 np = let ap : AP = PositA a2 in ap ** {
s = case a2.isPost of {False => ap.s ; _ => \\_,_ => []} ;
compl = \\n => applyAdp a2.c2 np
++ case a2.isPost of {
True => ap.s ! n ! Nom ;
False => [] } ;
} ;
-- : A2 -> AP ; -- married to itself
-- ReflA2 a2 = a2 ** { } ;
-- : A2 -> AP ; -- married
UseA2 = PositA ;
-- : A -> AP ; -- warmer
UseComparA a = emptyAP ** {
s = \\n,c =>
let adj : Noun = (a ** {s = a.s ! Compar}) in
caseFromStem glue adj c n ;
} ;
-- : CAdv -> AP -> NP -> AP ; -- as cool as John
CAdvAP adv ap np = ap ** {
s = \\n,c => adv.s ++ ap.s ! n ! c ;
compl = \\n => ap.compl ! n ++ adv.p ++ applyAdp (caseAdp Nom) np ;
} ;
-- The superlative use is covered in $Ord$.
-- : Ord -> AP ; -- warmest
AdjOrd ord = emptyAP ** ord ;
-- Sentence and question complements defined for all adjectival
-- phrases, although the semantics is only clear for some adjectives.
-- : AP -> SC -> AP ; -- good that she is here
-- SentAP ap sc = ap ** {} ;
-- An adjectival phrase can be modified by an *adadjective*, such as "very".
-- : AdA -> AP -> AP ;
AdAP ada ap = ap ** {
s = \\n,c => ada.s ++ ap.s ! n ! c ;
} ;
-- It can also be postmodified by an adverb, typically a prepositional phrase.
-- : AP -> Adv -> AP ; -- warm by nature
AdvAP ap adv = ap ** {
s = \\n,c => ap.s ! n ! c ++ adv.s ;
} ;
}