diff --git a/src/abstract/Extend.gf b/src/abstract/Extend.gf index ea9f9f3b..718ffdac 100644 --- a/src/abstract/Extend.gf +++ b/src/abstract/Extend.gf @@ -45,6 +45,13 @@ abstract Extend = Cat ** { MkVPS : Temp -> Pol -> VP -> VPS ; -- hasn't slept ConjVPS : Conj -> [VPS] -> VPS ; -- has walked and won't sleep PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep] + SQuestVPS : NP -> VPS -> QS ; -- has she walked + QuestVPS : IP -> VPS -> QS ; -- who has walked + +-- existentials that work in the absence of Cl + ExistS : Temp -> Pol -> NP -> S ; -- there was a party + ExistNPQS : Temp -> Pol -> NP -> QS ; -- was there a party + ExistIPQS : Temp -> Pol -> IP -> QS ; -- what was there MkVPI : VP -> VPI ; -- to sleep (TODO: Ant and Pol) ConjVPI : Conj -> [VPI] -> VPI ; -- to sleep and to walk diff --git a/src/common/ExtendFunctor.gf b/src/common/ExtendFunctor.gf index c07d3435..73847677 100644 --- a/src/common/ExtendFunctor.gf +++ b/src/common/ExtendFunctor.gf @@ -117,6 +117,14 @@ lin UttDatIP ip = UttAccIP (lin IP ip) ; -- whom (dative) ; DEFAULT who UttVPShort = UttVP ; -- have fun, as opposed to "to have fun" ; DEFAULT UttVP + SQuestVPS = variants {} ; -- : NP -> VPS -> QS ; -- has she walked + QuestVPS = variants {} ; -- : IP -> VPS -> QS ; -- who has walked + +-- these will probably not need language-specific implementations + ExistS t p np = UseCl t p (ExistNP np) ; + ExistNPQS t p np = UseQCl t p (QuestCl (ExistNP np)) ; + ExistIPQS t p np = UseQCl t p (ExistIP np) ; + oper quoted : Str -> Str = \s -> "\"" ++ s ++ "\"" ; ---- TODO bind ; move to Prelude?