mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-29 06:22:51 -06:00
100 lines
3.0 KiB
Plaintext
100 lines
3.0 KiB
Plaintext
concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
|
|
|
|
flags optimize=all_subs ;
|
|
|
|
lin
|
|
UseV = predV ;
|
|
|
|
ComplVV v vp =
|
|
let
|
|
vpi = infVP v.isAux vp
|
|
in
|
|
insertExtrapos vpi.p4 (
|
|
insertInfExt vpi.p3 (
|
|
insertInf vpi.p2 (
|
|
insertObj vpi.p1 (
|
|
predVGen v.isAux v)))) ;
|
|
|
|
ComplVS v s =
|
|
insertExtrapos (comma ++ conjThat ++ s.s ! Sub) (predV v) ;
|
|
ComplVQ v q =
|
|
insertExtrapos (comma ++ q.s ! QIndir) (predV v) ;
|
|
ComplVA v ap = insertAdj (ap.s ! APred) ap.c ap.ext (predV v) ; -- changed
|
|
|
|
SlashV2a v = predV v ** {c2 = v.c2} ;
|
|
|
|
Slash2V3 v np =
|
|
insertObj (\\_ => appPrepNP v.c2 np) (predV v) ** {c2 = v.c3} ;
|
|
Slash3V3 v np =
|
|
insertObj (\\_ => appPrepNP v.c3 np) (predV v) ** {c2 = v.c2} ;
|
|
|
|
SlashV2S v s =
|
|
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ** {c2 = v.c2} ;
|
|
SlashV2Q v q =
|
|
insertExtrapos (q.s ! QIndir) (predV v) ** {c2 = v.c2} ;
|
|
SlashV2V v vp =
|
|
let
|
|
vpi = infVP v.isAux vp
|
|
in
|
|
insertExtrapos vpi.p3 (
|
|
insertInf vpi.p2 (
|
|
insertObj vpi.p1 ((predVGen v.isAux v)))) ** {c2 = v.c2} ;
|
|
|
|
SlashV2A v ap =
|
|
insertAdj (ap.s ! APred) ap.c ap.ext (predV v) ** {c2 = v.c2} ; -- changed
|
|
|
|
ComplSlash vp np = insertObjNP (isLightComplement np.isPron vp.c2) (\\_ => appPrepNP vp.c2 np) vp ;
|
|
|
|
SlashVV v vp =
|
|
let
|
|
vpi = infVP v.isAux vp
|
|
in
|
|
insertExtrapos vpi.p3 (
|
|
insertInf vpi.p2 (
|
|
insertObj vpi.p1 (
|
|
predVGen v.isAux v))) ** {c2 = vp.c2} ;
|
|
|
|
SlashV2VNP v np vp =
|
|
let
|
|
vpi = infVP v.isAux vp
|
|
in
|
|
insertExtrapos vpi.p3 (
|
|
insertInf vpi.p2 (
|
|
insertObj vpi.p1 (
|
|
insertObj (\\_ => appPrepNP v.c2 np) (
|
|
predVGen v.isAux v)))) ** {c2 = v.c2} ;
|
|
|
|
UseComp comp = insertObj comp.s (predV sein_V) ; -- agr not used
|
|
-- adj slot not used here for e.g. "ich bin alt" but same behaviour as NPs?
|
|
-- "ich bin nicht alt" "ich bin nicht Doris"
|
|
|
|
UseCopula = predV sein_V ;
|
|
|
|
CompAP ap = {s = \\_ => ap.c.p1 ++ ap.s ! APred ++ ap.c.p2 ; ext = ap.ext} ;
|
|
CompNP np = {s = \\_ => np.s ! NPC Nom ++ np.adv ++ np.rc ; ext = np.ext} ;
|
|
CompAdv a = {s = \\_ => a.s ; ext = []} ;
|
|
|
|
CompCN cn = {s = \\a => case numberAgr a of {
|
|
Sg => "ein" + pronEnding ! GSg cn.g ! Nom ++ cn.s ! Strong ! Sg ! Nom ;
|
|
Pl => cn.s ! Strong ! Pl ! Nom
|
|
} ;
|
|
ext = []
|
|
} ;
|
|
|
|
AdvVP vp adv = insertAdv adv.s vp ;
|
|
ExtAdvVP vp adv = insertAdv (embedInCommas adv.s) vp ;
|
|
|
|
AdVVP adv vp = insertAdv adv.s vp ; -- not AdV 27/5/2012: nicht immer
|
|
|
|
AdvVPSlash vp adv = insertAdv adv.s vp ** {c2 = vp.c2} ;
|
|
AdVVPSlash adv vp = insertAdv adv.s vp ** {c2 = vp.c2} ;
|
|
|
|
ReflVP vp = insertObj (\\a => appPrep vp.c2
|
|
(\\k => usePrepC k (\c -> reflPron ! a ! c))) vp ;
|
|
|
|
PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ;
|
|
|
|
VPSlashPrep vp prep = vp ** {c2 = prep} ;
|
|
|
|
}
|