1
0
forked from GitHub/gf-rgl

(Hun) Add negation in verbs + change some parameter names

This commit is contained in:
Inari Listenmaa
2020-04-21 10:44:32 +02:00
parent 53bc773db6
commit 1dcb4720d1
3 changed files with 24 additions and 15 deletions

View File

@@ -1,5 +1,12 @@
resource ParamHun = ParamX ** open Prelude in {
--------------------------------------------------------------------------------
-- Generic
oper
if_then_Pol : Polarity -> Str -> Str -> Str = \p,t,f ->
case p of {Pos => t ; Neg => f } ;
--------------------------------------------------------------------------------
-- Phonology
@@ -88,13 +95,13 @@ param
VForm =
VInf
| VFin Person Number ;
| VPres Person Number ;
oper
agr2vf : Person*Number -> VForm = \pn ->
case <pn.p1,pn.p2> of {
<p,n> => VFin p n
<p,n> => VPres p n
} ;
--------------------------------------------------------------------------------

View File

@@ -249,7 +249,7 @@ oper
vtov2 : Verb -> Verb2 = \v -> v ** {
s = table {
Def => let vDef : Verb = mkVerbReg endingsDef (v.s ! VInf) (v.s ! VFin P3 Sg)
Def => let vDef : Verb = mkVerbReg endingsDef (v.s ! VInf) (v.s ! VPres P3 Sg)
in vDef.s ;
Indef => v.s } ;
c2 = Acc
@@ -272,12 +272,12 @@ oper
\sg1,sg2,sg3,pl1,pl2,pl3,inf -> {
s = table {
VInf => inf ;
VFin P1 Sg => sg1 ;
VFin P2 Sg => sg2 ;
VFin P3 Sg => sg3 ;
VFin P1 Pl => pl1 ;
VFin P2 Pl => pl2 ;
VFin P3 Pl => pl3
VPres P1 Sg => sg1 ;
VPres P2 Sg => sg2 ;
VPres P3 Sg => sg3 ;
VPres P1 Pl => pl1 ;
VPres P2 Pl => pl2 ;
VPres P3 Pl => pl3
} ;
sc = SCNom
} ;
@@ -351,6 +351,7 @@ oper
SCNom => Nom ;
SCDat => Dat }
in np.s ! subjcase
++ if_then_Pol p [] "nem"
++ vp.s ! agr2vf np.agr
++ vp.obj
++ vp.adv
@@ -373,9 +374,10 @@ oper
SCNom => Nom ;
SCDat => Dat }
in rp.s ! n ! subjcase
++ if_then_Pol p [] "nem"
++ vp.obj
++ vp.adv
++ vp.s ! VFin rp.agr.p1 n -- variable by number
++ vp.s ! VPres rp.agr.p1 n -- variable by number
} ;
relSlash : RP -> ClSlash -> RClause = \rp,cls -> {

View File

@@ -109,8 +109,8 @@ lin
-- : AP -> Comp ;
CompAP ap = UseCopula ** {
s = \\vf => case vf of {
VFin P3 n => ap.s ! n ;
VFin _ n => ap.s ! n ++ copula.s ! vf ;
VPres P3 n => ap.s ! n ;
VPres _ n => ap.s ! n ++ copula.s ! vf ;
_ => ap.s ! Sg ++ copula.s ! vf}
++ ap.compar ;
} ;
@@ -118,15 +118,15 @@ lin
-- : CN -> Comp ;
CompCN cn = UseCopula ** {
s = \\vf => case vf of {
VFin P3 n => cn.s ! n ! Nom ;
VFin _ n => cn.s ! n ! Nom ++ copula.s ! vf ;
VPres P3 n => cn.s ! n ! Nom ;
VPres _ n => cn.s ! n ! Nom ++ copula.s ! vf ;
_ => cn.s ! Sg ! Nom ++ copula.s ! vf} ;
} ;
-- : NP -> Comp ;
CompNP np = UseCopula ** {
s = \\vf => case vf of {
VFin P3 _ => np.s ! Nom ;
VPres P3 _ => np.s ! Nom ;
_ => np.s ! Nom ++ copula.s ! vf } ;
} ;