diff --git a/lib/resource/abstract/DemRes.gf b/lib/resource/abstract/DemRes.gf index 7aeb135b2..add595ea6 100644 --- a/lib/resource/abstract/DemRes.gf +++ b/lib/resource/abstract/DemRes.gf @@ -22,6 +22,13 @@ interface DemRes = open Prelude, Resource in { {s = \\b => msQS (UseQCl (polar b) cl) ++ adv.s ; --- (AdvQCl cl adv)) ; s5 = p.s5 ++ adv.s5 } ; + mkDemImp : VCl -> DemAdverb -> Pointing -> MultiImperative = \cl,adv,p -> + {s = table { + True => msImp (PosImpVP cl) ++ adv.s ; + False => msImp (NegImpVP cl) ++ adv.s + } ; + s5 = p.s5 ++ adv.s5 + } ; msS : S -> Str ; msQS : QS -> Str ; diff --git a/lib/resource/abstract/Demonstrative.gf b/lib/resource/abstract/Demonstrative.gf index 1ec54f048..18c7d7893 100644 --- a/lib/resource/abstract/Demonstrative.gf +++ b/lib/resource/abstract/Demonstrative.gf @@ -26,14 +26,14 @@ abstract Demonstrative = Categories ** { QModDemV2 : VV -> V2 -> IP -> DNP -> DAdv -> MQS ; -- who wants to take that QModDemSlashV2 : VV -> V2 -> DNP -> IP -> DAdv -> MQS ; -- whom does that want to take - this_DNP : Point -> DNP ; - that_DNP : Point -> DNP ; - thisDet_DNP : Point -> CN -> DNP ; - thatDet_DNP : Point -> CN -> DNP ; + this_DNP : Point -> DNP ; -- this + that_DNP : Point -> DNP ; -- that + thisDet_DNP : Point -> CN -> DNP ; -- this car + thatDet_DNP : Point -> CN -> DNP ; -- that car - here_DAdv : Point -> DAdv -> DAdv ; - here7from_DAdv : Point -> DAdv -> DAdv ; - here7to_DAdv : Point -> DAdv -> DAdv ; + here_DAdv : Point -> DAdv -> DAdv ; -- here + here7from_DAdv : Point -> DAdv -> DAdv ; -- from here + here7to_DAdv : Point -> DAdv -> DAdv ; -- to here NoDAdv : DAdv ; } diff --git a/lib/resource/abstract/DemonstrativeI.gf b/lib/resource/abstract/DemonstrativeI.gf index e11ce01b5..4dd6eff75 100644 --- a/lib/resource/abstract/DemonstrativeI.gf +++ b/lib/resource/abstract/DemonstrativeI.gf @@ -23,15 +23,26 @@ incomplete concrete DemonstrativeI of Demonstrative = ModDemV2 vv verb su ob adv = mkDemS (SPredVV su vv (UseVCl PPos ASimul (IPredV2 verb ob))) adv (concatDem su ob) ; + ImpDemV verb adv = + mkDemImp (IPredV verb) adv noPointing ; + ImpDemV2 verb ob adv = + mkDemImp (IPredV2 verb ob) adv ob ; + QDemV verb ip adv = mkDemQ (QPredV ip verb) adv noPointing ; QDemV2 verb ip ob adv = mkDemQ (QPredV2 ip verb ob) adv ob ; QDemSlashV2 verb su ip adv = mkDemQ (IntSlash ip (SlashV2 su verb)) adv su ; + QModDemV vv verb ip adv = + mkDemQ (QPredVV ip vv (UseVCl PPos ASimul (IPredV verb))) adv noPointing ; + QModDemV2 vv verb ip ob adv = + mkDemQ (QPredVV ip vv (UseVCl PPos ASimul (IPredV2 verb ob))) adv ob ; + QModDemSlashV2 vv verb su ip adv = + mkDemQ (IntSlash ip (SlashVV2 su vv verb)) adv su ; this_DNP p = this_NP ** p ; - that_DNP p = this_NP ** p ; + that_DNP p = that_NP ** p ; thisDet_DNP p cn = DetNP this_Det cn ** p ; thatDet_DNP p cn = DetNP that_Det cn ** p ; diff --git a/lib/resource/abstract/Multimodal.gf b/lib/resource/abstract/Multimodal.gf index df11e2482..de25a4598 100644 --- a/lib/resource/abstract/Multimodal.gf +++ b/lib/resource/abstract/Multimodal.gf @@ -20,11 +20,12 @@ abstract Multimodal = SentMS : Pol -> MS -> Phr ; QuestMS : Pol -> MS -> Phr ; QuestMQS : Pol -> MQS -> Phr ; + ImpMImp : Pol -> MImp -> Phr ; -- Mount $Time$. - AdvDate : Date -> Adv ; - AdvTime : Time -> Adv ; + AdvDate : Date -> Adv ; + AdvTime : Time -> Adv ; } diff --git a/lib/resource/abstract/MultimodalI.gf b/lib/resource/abstract/MultimodalI.gf index f2906dd82..fd10e01e2 100644 --- a/lib/resource/abstract/MultimodalI.gf +++ b/lib/resource/abstract/MultimodalI.gf @@ -7,6 +7,7 @@ incomplete concrete MultimodalI of Multimodal = SentMS p ms = {s = p.s ++ ms.s ! MInd (p.p) ++ ";" ++ ms.s5} ; QuestMS p ms = {s = p.s ++ ms.s ! MQuest (p.p) ++ ";" ++ ms.s5} ; QuestMQS p ms = {s = p.s ++ ms.s ! p.p ++ ";" ++ ms.s5} ; + ImpMImp p ms = {s = p.s ++ ms.s ! p.p ++ ";" ++ ms.s5} ; AdvDate = AdvDate ; AdvTime = AdvTime ;