diff --git a/src/hungarian/ParamHun.gf b/src/hungarian/ParamHun.gf index 35d4e5ad8..44905e0f3 100644 --- a/src/hungarian/ParamHun.gf +++ b/src/hungarian/ParamHun.gf @@ -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 of { - => VFin p n + => VPres p n } ; -------------------------------------------------------------------------------- diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index 6e54696b1..7f122f100 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -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 -> { diff --git a/src/hungarian/VerbHun.gf b/src/hungarian/VerbHun.gf index 0202aa980..f89e74431 100644 --- a/src/hungarian/VerbHun.gf +++ b/src/hungarian/VerbHun.gf @@ -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 } ; } ;