Files
gf-rgl/src/zulu/VerbExtZul.gf
2022-05-10 11:16:26 +02:00

153 lines
4.6 KiB
Plaintext

concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, ParamX in {
lin
CopAP ap = {
s = case ap.t of {
AdjType => table {
MainCl => \\a,p,t,l => let
vform = VFIndic MainCl p t ;
pcp = ap_cop_pref vform a AdjType ; -- u- / uzoba / ube- / waye- / wayenge-
adjpref = adjPref a vform ; -- m-
cop_base = ap.s!(aformN a) -- khulu
in
pcp ++ adjpref ++ cop_base ;
RelCl => \\a,p,t,l => let
vform = VFIndic RelCl p t ;
rcp = (relConcCop vform a RC) ; -- o-
pcp = ap_cop_pref vform a AdjType ; -- [] / -nge- / zoba / -be- / -benge- -waye- / -wayenge-
adjpref = adjPref a vform ; -- m-
cop_base = ap.s!(aformN a) -- khulu
in
rcp ++ pcp ++ adjpref ++ cop_base
} ;
RelType => table {
MainCl => \\a,p,t,l => let
vform = VFIndic MainCl p t ;
pcp = ap_cop_pref vform a RelType ; -- u-
cop_base = ap.s!AF1 -- qotho
in
pcp ++ cop_base ;
RelCl => \\a,p,t,l => let
vform = VFIndic RelCl p t ;
rcp = (relConcCop vform a RC) ; -- o-
pcp = ap_cop_pref vform a RelType ; -- [] / -nge- / zoba / -benge-
cop_base = ap.s!AF1 -- qotho
in
rcp ++ pcp ++ cop_base
}
} ;
comp, iadv, advs = [] ;
hasComp = True ;
r = RC ; -- should not be used
syl = SylMult ;
vptype = CopDescr
} ;
CopNP np = {
s = table {
MainCl => \\a,p,t,l => let
vform = VFIndic MainCl p t ;
pcp = (id_pre_cop_pref vform a) ; -- u- / uzoba / akazukuba
cp = (id_cop_pref np.agr) ; -- ng-
cop_base = np.s!NFull -- umfundi
in
pcp ++ cp ++ cop_base ;
RelCl => \\a,p,t,l => let
vform = VFIndic RelCl p t ;
rcp = (relConcCop vform a RC) ; -- o-
pcp = (id_pre_cop_pref vform a) ; -- [] / zoba / zukuba
cp = (id_cop_pref np.agr) ; -- ng-
cop_base = np.s!NFull -- umfundi
in
rcp ++ pcp ++ cp ++ cop_base
} ;
comp, iadv, advs = [] ;
hasComp = np.heavy ;
r = RC ; -- should not be used
syl = SylMult ;
vptype = CopIdent
} ;
CopNPAssoc np = {
s = table {
MainCl => \\a,p,t,l => let
vform = VFIndic MainCl p t ;
pcp = (assoc_pre_cop_pref vform a) ; -- u- / uzoba
cp = (assoc_cop_pref p np.agr) ; -- ne-
cop_base = np.s!NReduced -- moto
in
pcp ++ cp ++ cop_base ;
RelCl => \\a,p,t,l => let
vform = VFIndic RelCl p t ;
rcp = (relConcCop vform a RC) ; -- o-
pcp = (assoc_pre_cop_pref vform a) ; -- [] / zoba
cp = (assoc_cop_pref p np.agr) ; -- ne
cop_base = np.s!NReduced -- moto
in
rcp ++ pcp ++ cp ++ cop_base
} ;
comp, iadv, advs = [] ;
hasComp = np.heavy ;
r = RC ; -- should not be used
syl = SylMult ;
vptype = CopAssoc
} ;
ComplV2Nonspec v2 np = {
s = table {
MainCl => \\a,p,t,l => let
vform = VFIndic MainCl p t ;
tp = tensePref vform v2.r v2.syl ;
oc = objConc np.agr v2.r v2.syl ;
longform = case np.heavy of {
True => False ;
False => True
} ;
r = v2.s!(rform (VFIndic MainCl p t) longform) ;
obj = case p of {
Pos => np.s!NFull ;
Neg => np.s!NReduced
} ;
in case np.proDrop of {
True => tp ++ oc ++ r ++ obj ;
False => tp ++ r ++ obj
} ;
RelCl => \\a,p,t,l => let
vform = (VFIndic RelCl p t) ;
rc = relConc vform a v2.r ;
tp = tensePref vform v2.r v2.syl ;
oc = objConc np.agr v2.r v2.syl ;
longform = case np.heavy of {
True => False ;
False => True
} ;
r = v2.s!(rform vform longform) ;
obj = case p of {
Pos => np.s!NFull ;
Neg => np.s!NReduced
} ;
in case np.proDrop of {
True => rc ++ tp ++ oc ++ r ++ obj ;
False => rc ++ tp ++ r ++ obj
}
} ;
iadv, advs, comp = [] ;
ap_comp = \\_ => [] ;
hasComp = np.heavy ;
r = v2.r ;
syl = v2.syl ;
vptype = VNPCompl
} ;
CopLoc loc = {
s = \\c,a,p,t,l => loc.s!c!a!p!t ;
comp,advs,iadv = [] ;
hasComp = True ;
r = RC ;
syl = SylMult ;
vptype = CopLoc
} ;
}