mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand, Prelude in {
|
|
|
|
flags optimize=all_subs ;
|
|
|
|
lin
|
|
UseV = predV ;
|
|
|
|
SlashV2a v = predV v ** {n3 = \\_ => [] ; c2 = v.c2} ;
|
|
|
|
Slash2V3 v np =
|
|
insertObj (\\_ => v.c2.s ++ np.s ! accusative) (predV v) **
|
|
{n3 = \\_ => [] ; c2 = v.c3} ; -- to preserve the order of args
|
|
Slash3V3 v np = predV v ** {
|
|
n3 = \\_ => v.c3.s ++ np.s ! accusative ;
|
|
c2 = v.c2
|
|
} ;
|
|
|
|
ComplVV v vp = insertObjPost (\\a => v.c2.s ++ infVP vp a) (predV v) ;
|
|
ComplVS v s = insertObjPost (\\_ => conjThat ++ s.s ! Sub) (predV v) ; --- insertExt ?
|
|
ComplVQ v q = insertObjPost (\\_ => q.s ! QIndir) (predV v) ;
|
|
ComplVA v ap = insertObjPost (\\a => ap.s ! agrAdjNP a DIndef) (predV v) ;
|
|
|
|
SlashV2V v vp = predV v ** {
|
|
n3 = \\a => v.c3.s ++ infVP vp a ;
|
|
c2 = v.c2
|
|
} ;
|
|
SlashV2S v s = predV v ** {
|
|
n3 = \\_ => conjThat ++ s.s ! Sub ;
|
|
c2 = v.c2
|
|
} ;
|
|
SlashV2Q v q = predV v ** {
|
|
n3 = \\_ => q.s ! QIndir ;
|
|
c2 = v.c2
|
|
} ;
|
|
SlashV2A v ap = predV v ** {
|
|
n3 = \\a => ap.s ! agrAdjNP a DIndef ;
|
|
c2 = v.c2
|
|
} ;
|
|
|
|
ComplSlash vp np =
|
|
insertObjPost
|
|
(\\_ => vp.c2.s ++ np.s ! accusative ++ vp.n3 ! np.a) vp ;
|
|
|
|
SlashVV v vp =
|
|
insertObj (\\a => v.c2.s ++ infVP vp a) (predV v) ** {n3 = vp.n3 ; c2 = vp.c2} ;
|
|
|
|
SlashV2VNP v np vp =
|
|
insertObj
|
|
(\\a => v.c2.s ++ np.s ! accusative ++ v.c3.s ++ infVP vp a) (predV v)
|
|
** {n3 = vp.n3 ; c2 = v.c2} ;
|
|
|
|
UseComp comp = insertObj
|
|
comp.s (predV verbBe) ;
|
|
|
|
CompAP ap = {s = \\a => ap.s ! agrAdjNP a DIndef} ;
|
|
CompNP np = {s = \\_ => np.s ! accusative} ;
|
|
CompAdv a = {s = \\_ => a.s} ;
|
|
|
|
AdvVP vp adv = insertAdv adv.s vp ;
|
|
AdVVP adv vp = insertAdV adv.s vp ;
|
|
|
|
ReflVP vp = insertObj (\\a => vp.c2.s ++ reflPron a ++ vp.n3 ! a) vp ;
|
|
|
|
VPSlashPrep vp prep = vp ** {n3 = \\_ => [] ; c2 = {s = prep.s ; hasPrep = True}} ;
|
|
|
|
PassV2 v =
|
|
insertObj
|
|
(\\a => v.s ! VI (VPtPret (agrAdjNP a DIndef) Nom))
|
|
(predV verbBecome) ;
|
|
|
|
CompCN cn = {s = \\a => case a.n of {
|
|
Sg => artIndef ! cn.g ++ cn.s ! Sg ! DIndef ! Nom ;
|
|
Pl => cn.s ! Pl ! DIndef ! Nom
|
|
}
|
|
} ;
|
|
|
|
UseCopula = predV verbBe ;
|
|
|
|
AdvVPSlash vps adv = insertAdv adv.s vps ** {c2 = vps.c2 ; n3 = vps.n3} ;
|
|
AdVVPSlash adv vps = insertAdV adv.s vps ** {c2 = vps.c2 ; n3 = vps.n3} ;
|
|
ExtAdvVP vp adv = insertExt ("," ++ adv.s) vp ;
|
|
|
|
}
|