forked from GitHub/gf-rgl
(Dut) make APs depend on agreement -- needed for reflexives
This commit is contained in:
@@ -23,7 +23,8 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
||||
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
|
||||
ComplVQ v q =
|
||||
insertExtrapos (q.s ! QIndir) (predV v) ;
|
||||
ComplVA v ap = insertObj (\\ _ => ap.s ! APred) (predVGen False BetweenObjs v) ;
|
||||
ComplVA v ap =
|
||||
insertObj (\\agr => ap.s ! agr ! APred) (predVGen False BetweenObjs v) ;
|
||||
|
||||
SlashV2a v = predV (v2v v) ** {c2 = v.c2} ;
|
||||
|
||||
@@ -43,13 +44,12 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
||||
insertExtrapos vpi.p3 (
|
||||
insertInf vpi.p2 (
|
||||
insertObj vpi.p1 ((predVGen v.isAux vp.negPos v)))) ** {c2 = v.c2} ;
|
||||
|
||||
SlashV2A v ap =
|
||||
insertObj (\\_ => ap.s ! APred) (predVGen False BetweenObjs (v2v v)) ** {c2 = v.c2} ;
|
||||
insertObj (\\agr => ap.s ! agr ! APred)
|
||||
(predVGen False BetweenObjs (v2v v)) ** {c2 = v.c2} ;
|
||||
|
||||
--vp.c2.p2: if the verb has a preposition or not
|
||||
ComplSlash vp np = insertObjNP np.isPron (case vp.c2.p2 of {True => BeforeObjs; False => vp.negPos}) (\\_ => appPrep vp.c2.p1 np) vp ;
|
||||
|
||||
SlashVV v vp =
|
||||
let
|
||||
vpi = infVP v.isAux vp
|
||||
@@ -78,7 +78,7 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
||||
CompCN cn = {s = \\a => case a.n of {
|
||||
Sg => "een" ++ cn.s ! Strong ! NF Sg Nom ;
|
||||
Pl => cn.s ! Strong ! NF Pl Nom }} ;
|
||||
CompAP ap = {s = \\_ => ap.s ! APred} ;
|
||||
CompAP ap = {s = \\agr => ap.s ! agr ! APred} ; -- agr needed for reflexives: "married to my/your/...self"
|
||||
CompNP np = {s = \\_ => np.s ! NPNom} ;
|
||||
CompAdv a = {s = \\_ => a.s} ;
|
||||
|
||||
@@ -95,10 +95,10 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
||||
|
||||
VPSlashPrep vp prep = vp ** {c2 = <prep,True>} ;
|
||||
|
||||
|
||||
---- workaround for a subtyping bug
|
||||
oper
|
||||
v2v : VVerb -> VVerb = \v ->
|
||||
{s = v.s ; aux = v.aux ; prefix = v.prefix ; particle = v.particle ; vtype = v.vtype} ;
|
||||
predVv : VVerb -> ResDut.VP = \v -> predV (v2v v) ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user