added future tense and fix PossPron

This commit is contained in:
Krasimir Angelov
2026-05-06 21:57:29 +02:00
parent 86e2afcfc0
commit 9265270a0c
3 changed files with 27 additions and 10 deletions

View File

@@ -185,7 +185,7 @@ concrete NounHun of Noun = CatHun ** open
-- : Pron -> Quant
PossPron pron = pron ** {
s,sp = \\_ => pron.s ;
s,sp = \\_,_ => pre {"a" ; "az" / v} ++ pron.s ! Nom ;
dt = DetPoss (agr2pstem pron.agr) ;
caseagr = False ;
} ;

View File

@@ -201,13 +201,6 @@ param
| VPres Person Number
| VPast Person Number ;
oper
agr2vf : Tense -> Person*Number -> VForm = \t,pn ->
case <t,pn.p1,pn.p2> of {
<Past,p,n> => VPast p n ;
<_,p,n> => VPres p n
} ;
--------------------------------------------------------------------------------
-- Clauses

View File

@@ -436,6 +436,22 @@ oper
mkVerb2 : Str -> Verb2 = \sg3 -> vtov2 (mkVerb sg3) ;
mkVerb3 : Str -> Verb3 = \sg3 -> v2tov3 (mkVerb2 sg3) ;
futureAux : ObjDef -> Person -> Number -> Str = \od,p,n ->
case <od,p,n> of {
<Indef,P1,Sg> => "fogok" ;
<Indef,P2,Sg> => "fogsz" ;
<Indef,P3,Sg> => "fog" ;
<Indef,P1,Pl> => "fogunk" ;
<Indef,P2,Pl> => "fogtok" ;
<Indef,P3,Pl> => "fognak" ;
<Def,P1,Sg> => "fogom" ;
<Def,P2,Sg> => "fogod" ;
<Def,P3,Sg> => "fogja" ;
<Def,P1,Pl> => "fogjuk" ;
<Def,P2,Pl> => "fogjátok" ;
<Def,P3,Pl> => "fogják"
} ;
vtov2 : Verb -> Verb2 = \v -> v ** {
s = table {
Def => let vDef : Verb = mkVerbRegPast endingsDef endingsPastDef
@@ -576,7 +592,11 @@ oper
SCDat => Dat }
in linNP' NoPoss subjcase np
++ if_then_Pol p [] "nem"
++ vp.s ! agr2vf t np.agr
++ case <t,np.agr.p1,np.agr.p2> of {
<Past,p,n> => vp.s ! VPast p n ;
<Fut,p,n> => futureAux Indef p n ++ vp.s ! VInf ;
<_,p,n> => vp.s ! VPres p n
}
++ vp.obj -- ! np.agr
++ vp.adv
++ np.empty -- standard trick for prodrop+metavariable problem
@@ -597,7 +617,11 @@ oper
++ if_then_Pol p [] "nem"
++ vp.obj -- ! <rp.agr.p1,n>
++ vp.adv
++ vp.s ! agr2vf t <rp.agr.p1,n> -- variable by number
++ case <t,rp.agr.p1,n> of {
<Past,p,n> => vp.s ! VPast p n ;
<Fut,p,n> => futureAux Indef p n ++ vp.s ! VInf ;
<_,p,n> => vp.s ! VPres p n
} -- variable by number
} ;
relSlash : RP -> ClSlash -> RClause = \rp,cls -> {