1
0
forked from GitHub/gf-core
Files
gf-core/examples/attempto/Attempto.gf
2010-11-10 17:01:12 +00:00

263 lines
5.1 KiB
Plaintext

abstract Attempto =
Numeral, Symbols ** {
flags startcat = ACEText ;
cat CN ;
cat NP ;
cat Card ;
---cat Numeral ;
cat PN ;
cat A ;
cat A2 ;
cat AP ;
cat RS ;
cat Pron ;
cat Prep ;
cat S ;
cat VP ;
cat V ;
cat VS ;
cat V2 ;
cat V3 ;
cat Adv ;
cat Conj ;
cat IP ;
cat IAdv ;
cat QS ;
cat Text ;
cat RP ;
fun aNP : CN -> NP ;
fun theNP : CN -> NP ;
fun cardNP : Card -> CN -> NP ;
fun noNP : CN -> NP ;
fun everyNP : CN -> NP ;
fun eachNP : CN -> NP ;
fun notEveryNP : CN -> NP ;
fun notEachNP : CN -> NP ;
fun theCollNP : CN -> NP ;
fun someCollNP : CN -> NP ;
fun allCollNP : CN -> NP ;
fun noCollNP : CN -> NP ;
fun eachTheNP : CN -> NP ;
fun eachSomeNP : CN -> NP ;
fun eachNumNP : Card -> CN -> NP ;
cat MCN ;
fun someMassNP : MCN -> NP ;
fun noMassNP : MCN -> NP ;
fun allMassNP : MCN -> NP ;
fun notAllMassNP : MCN -> NP ;
---fun one_Card : Card ;
---fun two_Card : Card ;
---fun five_Card : Card ;
---fun ten_Card : Card ;
fun pnNP : PN -> NP ;
fun intNP : Int -> NP ;
fun floatNP : Float -> NP ;
-- arithmetic expressions with + - * /
-- strings "foo" and "foo" & "bar
-- sets {a,b,c}
-- lists [a,b,c]
fun it_NP : NP ;
fun he_NP : NP ;
fun she_NP : NP ;
fun he_she_NP : NP ;
fun they_NP : NP ;
-- reflexive pronouns: itself, himself, herself, himself/herself, themselves
--fun someone_NP : NP ;
fun somebody_NP : NP ;
fun something_NP : NP ;
--fun noone_NP : NP ;
fun nobody_NP : NP ;
fun nothing_NP : NP ;
--fun not_everyoneNP : NP ;
fun not_everybodyNP : NP ;
fun not_everythingNP : NP ;
fun at_leastNP : Card -> CN -> NP ;
fun not_at_leastNP : Card -> CN -> NP ;
fun at_mostNP : Card -> CN -> NP ;
fun not_at_mostNP : Card -> CN -> NP ;
fun more_thanNP : Card -> CN -> NP ;
fun not_more_thanNP : Card -> CN -> NP ;
fun nothing_butNP : CN -> NP ; -- nothing but apples
fun nothing_butMassNP : MCN -> NP ; -- nothing but water
fun nobody_butNP : PN -> NP ; -- nobody but John
fun no_butNP : CN -> PN -> NP ; -- no man but John
cat Unit ; -- SI measurement units
fun unitNP : Card -> Unit -> NP ;
fun unit_ofNP : Card -> Unit -> CN -> NP ; -- 3 kg of apples
fun unit_ofMassNP : Card -> Unit -> MCN -> NP ; -- 3 l of water
fun apposVarCN : CN -> Var -> CN ; -- a man X
fun termNP : Term -> NP ;
fun conjNP : NP -> NP -> NP ;
-- 2.2.1
fun adjCN : AP -> CN -> CN ;
fun positAP : A -> AP ;
fun comparAP : A -> AP ;
fun superlAP : A -> AP ;
-- 2.2.2
fun relCN : CN -> RS -> CN ;
fun relNP : NP -> RS -> NP ;
fun andRS : RS -> RS -> RS ;
fun orRS : RS -> RS -> RS ;
fun suchCN : CN -> S -> CN ;
fun predRS : RP -> VP -> RS ;
fun slashRS : RP -> NP -> V2 -> RS ;
fun which_RP : RP ;
fun eachRP : RP ;
-- 2.2.4
fun genNP : NP -> CN -> NP ; -- everybody's customer
fun ofCN : CN -> NP -> CN ; -- dog of John and Mary
fun genOwnNP : NP -> CN -> NP ; -- his own customer
-- 2.3.1
fun vpS : NP -> VP -> S ;
fun neg_vpS : NP -> VP -> S ;
fun not_provably_vpS : NP -> VP -> S ;
fun vVP : V -> VP ;
fun vsVP : VS -> S -> VP ;
fun v2VP : V2 -> NP -> VP ;
fun v3VP : V3 -> NP -> NP -> VP ;
-- 2.3.2
fun apVP : AP -> VP ;
fun compVP : A -> NP -> VP ; -- John is richer than Mary
fun as_asVP : AP -> NP -> VP ; -- John is as rich as Mary
fun more_thanVP : AP -> NP -> VP ; -- John is as rich as Mary
-- John is as fond-of Mary as of Sue
-- John is more fond-of Mary than of Sue
cat PP ;
--cat [PP] {1} ;
--fun ppVP : [PP] -> VP ; -- John is in the garden in the morning
fun ppVP : PP -> VP ; -- iteration is done by advPP and modVP
fun prepPP : Prep -> NP -> PP ;
fun advPP : PP -> Adv ;
-- 2.3.5
fun canVP : VP -> VP ;
fun mustVP : VP -> VP ;
fun have_toVP : VP -> VP ;
-- 2.4
fun modVP : VP -> Adv -> VP ;
-- 3.2
fun thereNP : NP -> S ; -- there is/are
-- 3.3
fun formulaS : Formula -> S ;
-- 3.4.1
fun coordS : Conj -> S -> S -> S ;
fun and_Conj : Conj ;
fun or_Conj : Conj ;
fun commaAnd_Conj : Conj ; -- lower precedence
fun commaOr_Conj : Conj ;
-- 3.4.3
fun for_everyS : CN -> S -> S ;
fun for_eachS : CN -> S -> S ;
fun for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men
fun for_allMassS : MCN -> S -> S ; -- for all water
-- 3.4.4
fun if_thenS : S -> S -> S ;
fun falseS : S -> S ; -- it is false that
fun not_provableS : S -> S ; -- it is not provable that
fun possibleS : S -> S ; -- it is possible that
fun not_possibleS : S -> S ;
fun necessaryS : S -> S ;
fun not_necessaryS : S -> S ;
-- 3.5
fun npQS : NP -> VP -> QS ;
fun ipQS : IP -> VP -> QS ;
fun iadvQS : IAdv -> NP -> VP -> QS ;
fun where_IAdv : IAdv ;
fun when_IAdv : IAdv ;
fun whoSg_IP : IP ;
fun whoPl_IP : IP ;
fun there_ipQS : IP -> QS ; -- there is who
fun whoseIP : CN -> IP ; -- whose dog
-- 3.6
fun np_impVP : NP -> VP -> Text ; -- John, go to the bank!
-- 4
cat ACEText ;
fun consText : Text -> ACEText -> ACEText ;
fun baseText : Text -> ACEText ;
fun sText : S -> Text ;
fun qsText : QS -> Text ;
-- more
fun npVP : NP -> VP ; -- is a bank
fun impVP : VP -> Text ; -- go to the bank!
fun numeralCard : Numeral -> Card ; -- fifteen banks
fun digitsCard : Digits -> Card ; -- 8 banks
fun have_V2 : V2 ; -- has (an apple)
fun v2_byVP : V2 -> NP -> VP ; -- is bought by a customer
}