mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 09:28:54 -06:00
(Hun) Add negation in verbs + change some parameter names
This commit is contained in:
@@ -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
|
||||
} ;
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@@ -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 -> {
|
||||
|
||||
@@ -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 } ;
|
||||
} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user