1
0
forked from GitHub/gf-rgl

added compoundN

This commit is contained in:
Krasimir Angelov
2022-08-15 06:56:46 +02:00
parent 9cdb7ec37b
commit c86481df61

View File

@@ -266,6 +266,85 @@ oper
} ;
} ;
compoundN = overload {
compoundN : A -> N -> N
= \a, n -> applyMaybeNumber
{snom = case n.g of {
Fem => preOrPost (notB a.p) a.fsnom n.snom ;
Masc => preOrPost (notB a.p) a.msnom n.snom ;
Neut => preOrPost (notB a.p) a.nsnom n.snom
} ;
sgen = case n.g of {
Fem => preOrPost (notB a.p) a.fsgen n.sgen ;
_ => preOrPost (notB a.p) a.msgen n.sgen
} ;
sdat = case n.g of {
Fem => preOrPost (notB a.p) a.fsgen n.sdat ;
_ => preOrPost (notB a.p) a.msdat n.sdat
} ;
sacc = case n.g of {
Fem => preOrPost (notB a.p) a.fsacc n.sacc ;
Masc => case n.anim of {
Inanimate => preOrPost (notB a.p) a.msnom n.sacc ;
Animate => preOrPost (notB a.p) a.msgen n.sacc
} ;
Neut => preOrPost (notB a.p) a.nsnom n.sacc
} ;
sins = case n.g of {
Fem => preOrPost (notB a.p) a.fsins n.sins ;
_ => preOrPost (notB a.p) a.msins n.sins
} ;
sprep= case n.g of {
Fem => preOrPost (notB a.p) a.fsgen n.sprep ;
_ => preOrPost (notB a.p) a.msprep n.sprep
} ;
sloc = case n.g of {
Fem => preOrPost (notB a.p) a.fsgen n.sloc ;
_ => preOrPost (notB a.p) a.msprep n.sloc
} ;
sptv = case n.g of {
Fem => preOrPost (notB a.p) a.fsgen n.sptv ;
_ => preOrPost (notB a.p) a.msgen n.sptv
} ;
svoc = case n.g of {
Fem => preOrPost (notB a.p) a.fsnom n.svoc ;
Masc => preOrPost (notB a.p) a.msnom n.svoc ;
Neut => preOrPost (notB a.p) a.nsnom n.svoc
} ;
pnom = preOrPost (notB a.p) a.pnom n.pnom ;
pgen = preOrPost (notB a.p) a.pgen n.pgen ;
pdat = preOrPost (notB a.p) a.msins n.pdat ;
pacc = case n.anim of {
Inanimate => preOrPost (notB a.p) a.pnom n.pacc ;
Animate => preOrPost (notB a.p) a.pgen n.pacc
} ;
pins = preOrPost (notB a.p) a.pins n.pins ;
pprep= preOrPost (notB a.p) a.pgen n.sprep ;
anim=n.anim;
mayben=n.mayben ;
g=n.g
} ;
compoundN : N -> Str -> N
= \n, adv -> n ** {
snom = n.snom ++ adv;
sgen = n.sgen ++ adv;
sdat = n.sdat ++ adv;
sacc = n.sacc ++ adv;
sins = n.sins ++ adv;
sprep = n.sprep ++ adv;
sloc = n.sloc ++ adv;
sptv = n.sptv ++ adv;
svoc = n.svoc ++ adv;
pnom = n.pnom ++ adv;
pgen = n.pgen ++ adv;
pdat = n.pdat ++ adv;
pacc = n.pacc ++ adv;
pins = n.pins ++ adv;
pprep = n.pprep ++ adv
} ;
} ;
mkN2 = overload {
mkN2 : N -> N2
= \n -> lin N2 (mkFun n nullPrep) ;