forked from GitHub/gf-core
generalized V2V construction to present participles
This commit is contained in:
@@ -77,7 +77,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
|
|||||||
V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ;
|
V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ;
|
||||||
V3 = Verb ** {c2, c3 : Str} ;
|
V3 = Verb ** {c2, c3 : Str} ;
|
||||||
VV = {s : VVForm => Str ; typ : VVType} ;
|
VV = {s : VVForm => Str ; typ : VVType} ;
|
||||||
V2V = Verb ** {c2 : Str ; typ : VVType} ;
|
V2V = Verb ** {c2,c3 : Str ; typ : VVType} ;
|
||||||
|
|
||||||
A = {s : AForm => Str} ;
|
A = {s : AForm => Str} ;
|
||||||
A2 = {s : AForm => Str ; c2 : Str} ;
|
A2 = {s : AForm => Str ; c2 : Str} ;
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ lin
|
|||||||
become_VA = mkVA (irregV "become" "became" "become") ;
|
become_VA = mkVA (irregV "become" "became" "become") ;
|
||||||
beer_N = regN "beer" ;
|
beer_N = regN "beer" ;
|
||||||
beg_V2V = mkV2V (regDuplV "beg") noPrep toP ;
|
beg_V2V = mkV2V (regDuplV "beg") noPrep toP ;
|
||||||
|
-- prevent_V2V = ingV2V (mkV "prevent") noPrep (mkPrep "from") ;
|
||||||
|
-- make_V2V = mkV2V make_V noPrep noPrep ;
|
||||||
big_A = duplADeg "big" ;
|
big_A = duplADeg "big" ;
|
||||||
bike_N = regN "bike" ;
|
bike_N = regN "bike" ;
|
||||||
bird_N = regN "bird" ;
|
bird_N = regN "bird" ;
|
||||||
|
|||||||
@@ -307,7 +307,8 @@ oper
|
|||||||
mkV2S : V -> Prep -> V2S ; -- e.g. tell (NP) (that S)
|
mkV2S : V -> Prep -> V2S ; -- e.g. tell (NP) (that S)
|
||||||
mkVV : V -> VV ; -- e.g. want (to VP)
|
mkVV : V -> VV ; -- e.g. want (to VP)
|
||||||
ingVV : V -> VV ; -- e.g. start (VPing)
|
ingVV : V -> VV ; -- e.g. start (VPing)
|
||||||
mkV2V : V -> Prep -> Prep -> V2V ; -- e.g. want (NP) (to VP)
|
mkV2V : V -> Prep -> Prep -> V2V ; -- e.g. want (noPrep NP) (to VP)
|
||||||
|
ingV2V : V -> Prep -> Prep -> V2V ; -- e.g. prevent (noPrep NP) (from VP-ing)
|
||||||
mkVA : V -> VA ; -- e.g. become (AP)
|
mkVA : V -> VA ; -- e.g. become (AP)
|
||||||
mkV2A : V -> Prep -> V2A ; -- e.g. paint (NP) (AP)
|
mkV2A : V -> Prep -> V2A ; -- e.g. paint (NP) (AP)
|
||||||
mkVQ : V -> VQ ; -- e.g. wonder (QS)
|
mkVQ : V -> VQ ; -- e.g. wonder (QS)
|
||||||
@@ -555,7 +556,8 @@ mkSubj : Str -> Subj = \s -> lin Subj {s = s} ; --%
|
|||||||
|
|
||||||
mkV0 v = v ;
|
mkV0 v = v ;
|
||||||
mkV2S v p = lin V2S (prepV2 v p) ;
|
mkV2S v p = lin V2S (prepV2 v p) ;
|
||||||
mkV2V v p t = lin V2V (prepV2 v p ** {typ = VVInf}) ;
|
mkV2V v p t = lin V2V (prepV2 v p ** {c3 = t.s ; typ = VVAux}) ;
|
||||||
|
ingV2V v p t = lin V2V (prepV2 v p ** {c3 = t.s ; typ = VVPresPart}) ;
|
||||||
mkVA v = lin VA v ;
|
mkVA v = lin VA v ;
|
||||||
mkV2A v p = lin V2A (prepV2 v p) ;
|
mkV2A v p = lin V2A (prepV2 v p) ;
|
||||||
mkV2Q v p = lin V2Q (prepV2 v p) ;
|
mkV2Q v p = lin V2Q (prepV2 v p) ;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
|
|||||||
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
||||||
ComplVA v ap = insertObj (ap.s) (predV v) ;
|
ComplVA v ap = insertObj (ap.s) (predV v) ;
|
||||||
|
|
||||||
SlashV2V v vp = insertObjc (\\a => infVP v.typ vp a) (predVc v) ;
|
SlashV2V v vp = insertObjc (\\a => v.c3 ++ infVP v.typ vp a) (predVc v) ;
|
||||||
SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
|
SlashV2S v s = insertObjc (\\_ => conjThat ++ s.s) (predVc v) ;
|
||||||
SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
|
SlashV2Q v q = insertObjc (\\_ => q.s ! QIndir) (predVc v) ;
|
||||||
SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
|
SlashV2A v ap = insertObjc (\\a => ap.s ! a) (predVc v) ; ----
|
||||||
@@ -28,7 +28,7 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
|
|||||||
{c2 = vp.c2} ;
|
{c2 = vp.c2} ;
|
||||||
SlashV2VNP vv np vp =
|
SlashV2VNP vv np vp =
|
||||||
insertObjPre (\\_ => vv.c2 ++ np.s ! Acc)
|
insertObjPre (\\_ => vv.c2 ++ np.s ! Acc)
|
||||||
(insertObjc (\\a => infVP vv.typ vp a) (predVc vv)) **
|
(insertObjc (\\a => vv.c3 ++ infVP vv.typ vp a) (predVc vv)) **
|
||||||
{c2 = vp.c2} ;
|
{c2 = vp.c2} ;
|
||||||
|
|
||||||
UseComp comp = insertObj comp.s (predAux auxBe) ;
|
UseComp comp = insertObj comp.s (predAux auxBe) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user