mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-12 00:20:11 -06:00
75 lines
1.9 KiB
Plaintext
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 ;
|
|
} ;
|
|
|
|
}
|