mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-26 03:08:55 -06:00
sentential adverbs in infinitives
This commit is contained in:
@@ -28,7 +28,7 @@ concrete ExtraEng of ExtraEngAbs = CatEng **
|
|||||||
ConsVPI = consrTable2 VPIForm Agr comma ;
|
ConsVPI = consrTable2 VPIForm Agr comma ;
|
||||||
|
|
||||||
MkVPI vp = {
|
MkVPI vp = {
|
||||||
s = \\v,a => vp.inf ++ vp.s2 ! a
|
s = \\v,a => vp.ad ++ vp.inf ++ vp.s2 ! a
|
||||||
} ;
|
} ;
|
||||||
ConjVPI = conjunctTable2 VPIForm Agr ;
|
ConjVPI = conjunctTable2 VPIForm Agr ;
|
||||||
ComplVPIVV vv vpi =
|
ComplVPIVV vv vpi =
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in {
|
|||||||
mkQuestion (ss (ip.s ! Nom))
|
mkQuestion (ss (ip.s ! Nom))
|
||||||
(mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
|
(mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
|
||||||
|
|
||||||
ProgrVP vp = insertObj (\\a => vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
|
ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s = "let's" ++ infVP True vp {n = Pl ; p = P1}} ;
|
ImpPl1 vp = {s = "let's" ++ infVP True vp {n = Pl ; p = P1}} ;
|
||||||
|
|
||||||
|
|||||||
@@ -182,12 +182,13 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
|
|
||||||
VerbForms : Type =
|
VerbForms : Type =
|
||||||
Tense => Anteriority => CPolarity => Order => Agr =>
|
Tense => Anteriority => CPolarity => Order => Agr =>
|
||||||
{aux, adv, fin, inf : Str} ; -- would, hardly, sleeps, slept
|
{aux, adv, fin, inf : Str} ; -- would, not, sleeps, slept
|
||||||
|
|
||||||
VP : Type = {
|
VP : Type = {
|
||||||
s : VerbForms ;
|
s : VerbForms ;
|
||||||
prp : Str ; -- present participle
|
prp : Str ; -- present participle
|
||||||
inf : Str ; -- the infinitive form ; VerbForms would be the logical place
|
inf : Str ; -- the infinitive form ; VerbForms would be the logical place
|
||||||
|
ad : Str ; -- sentence adverb
|
||||||
s2 : Agr => Str -- complement
|
s2 : Agr => Str -- complement
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -221,6 +222,7 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
prp = verb.s ! VPresPart ;
|
prp = verb.s ! VPresPart ;
|
||||||
inf = verb.s ! VInf ;
|
inf = verb.s ! VInf ;
|
||||||
|
ad = [] ;
|
||||||
s2 = \\a => if_then_Str verb.isRefl (reflPron ! a) []
|
s2 = \\a => if_then_Str verb.isRefl (reflPron ! a) []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -256,6 +258,7 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
prp = verb.prpart ;
|
prp = verb.prpart ;
|
||||||
inf = verb.inf ;
|
inf = verb.inf ;
|
||||||
|
ad = [] ;
|
||||||
s2 = \\_ => []
|
s2 = \\_ => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -282,11 +285,10 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
--- The adverb should be before the finite verb.
|
--- The adverb should be before the finite verb.
|
||||||
|
|
||||||
insertAdV : Str -> VP -> VP = \ad,vp -> {
|
insertAdV : Str -> VP -> VP = \ad,vp -> {
|
||||||
s = \\t,ant,cb,ord,agr =>
|
s = vp.s ;
|
||||||
let vps = vp.s ! t ! ant ! cb ! ord ! agr in
|
|
||||||
{aux = vps.aux ; adv = vps.adv ++ ad ; fin = vps.fin ; inf = vps.inf} ;
|
|
||||||
prp = vp.prp ;
|
prp = vp.prp ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf ;
|
||||||
|
ad = vp.ad ++ ad ;
|
||||||
s2 = \\a => vp.s2 ! a
|
s2 = \\a => vp.s2 ! a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -316,10 +318,9 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
|
agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
|
||||||
|
|
||||||
infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a ->
|
infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a ->
|
||||||
|
vp.ad ++
|
||||||
case isAux of {True => [] ; False => "to"} ++
|
case isAux of {True => [] ; False => "to"} ++
|
||||||
(vp.s!Pres!Simul!CPos!ODir!a).adv ++ vp.inf ++ vp.s2 ! a ;
|
vp.inf ++ vp.s2 ! a ;
|
||||||
--- if_then_Str isAux [] "to" ++
|
|
||||||
--- vp.inf ++ vp.s2 ! a ;
|
|
||||||
|
|
||||||
agrVerb : Str -> Str -> Agr -> Str = \has,have,agr ->
|
agrVerb : Str -> Str -> Agr -> Str = \has,have,agr ->
|
||||||
case agr of {
|
case agr of {
|
||||||
@@ -383,8 +384,8 @@ resource ResEng = ParamX ** open Prelude in {
|
|||||||
compl = vp.s2 ! agr
|
compl = vp.s2 ! agr
|
||||||
in
|
in
|
||||||
case o of {
|
case o of {
|
||||||
ODir => subj ++ verb.aux ++ verb.adv ++ verb.fin ++ verb.inf ++ compl ;
|
ODir => subj ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ compl ;
|
||||||
OQuest => verb.aux ++ subj ++ verb.adv ++ verb.fin ++ verb.inf ++ compl
|
OQuest => verb.aux ++ subj ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ compl
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user