1
0
forked from GitHub/gf-core

Collapse some unnecessairly expanded cases in the russian morphology.

This commit is contained in:
bjorn
2008-06-23 13:27:51 +00:00
parent f47b1a7487
commit 74715f4673
2 changed files with 12 additions and 54 deletions

View File

@@ -2373,16 +2373,11 @@ oper PresentVerb : Type = PresentVF => Str ;
oper presentConjDolzhen: Str -> Str -> PresentVerb = \del, sgP1End ->
table {
PRF APl _ => del+ "ны" ;
PRF (ASg Masc) P1 => del+ sgP1End ;
PRF (ASg Fem) P1 => del+ "на" ;
PRF (ASg Neut) P1 => del+ "но" ;
PRF (ASg Masc) P2 => del+ sgP1End ;
PRF (ASg Fem) P2 => del+ "на" ;
PRF (ASg Neut) P2 => del+ "но" ;
PRF (ASg Masc) P3 => del+ sgP1End ;
PRF (ASg Fem) P3 => del+ "на" ;
PRF (ASg Neut) P3 => del+ "но" };
PRF APl _ => del + "ны" ;
PRF (ASg Masc) _ => del + sgP1End ;
PRF (ASg Fem) _ => del + "на" ;
PRF (ASg Neut) _ => del + "но"
};
-- +++ MG_UR: changed! +++
oper presentConjMixed: Str -> Str -> PresentVerb = \del, sgP1End ->
@@ -2610,25 +2605,13 @@ oper perfectiveActivePattern: Str -> Str -> PresentVerb -> PastVerb -> AspectVoi
VIMP Pl P2 => imper+"те" ;
VIMP Sg P3 => "пусть" ++ presentFuture ! (PRF (ASg Masc) P3) ;
VIMP Pl P3 => "пусть" ++ presentFuture ! (PRF APl P3) ;
VSUB (ASg Masc) => past ! (PSF (ASg Masc)) ++"бы";
VSUB (ASg Fem) => past ! (PSF (ASg Fem)) ++"бы";
VSUB (ASg Neut) => past ! (PSF (ASg Neut) )++"бы";
VSUB APl => past ! (PSF APl) ++"бы";
VSUB gn => past ! (PSF gn) ++"бы";
VIND (ASg _) (VPresent _) => [] ;
VIND APl (VPresent P1) => nonExist ;
VIND APl (VPresent P2) => nonExist ;
VIND APl (VPresent P3) => [] ;
VIND (ASg _) (VFuture P1) => presentFuture ! (PRF (ASg Masc) P1) ;
VIND (ASg _) (VFuture P2) => presentFuture ! (PRF (ASg Masc) P2) ;
VIND (ASg _) (VFuture P3) => presentFuture ! (PRF (ASg Masc) P3) ;
VIND APl (VFuture P1) => presentFuture ! (PRF APl P1) ;
VIND APl (VFuture P2) => presentFuture ! (PRF APl P2) ;
VIND APl (VFuture P3) => presentFuture ! (PRF APl P3) ;
VIND (ASg Masc) VPast => past ! (PSF (ASg Masc)) ;
VIND (ASg Fem) VPast => past ! (PSF (ASg Fem) ) ;
VIND (ASg Neut) VPast => past ! (PSF (ASg Neut)) ;
VIND APl VPast => past ! (PSF APl)
VIND gn (VFuture p) => presentFuture ! (PRF gn p) ;
VIND gn VPast => past ! (PSF gn)
} ;
asp = Perfective
} ;

View File

@@ -109,15 +109,7 @@ oper
oper
extCase: PronForm -> Case = \pf -> case pf of
{ PF Nom _ _ => Nom ;
PF Gen _ _ => Gen ;
PF Dat _ _ => Dat ;
PF Inst _ _ => Inst ;
PF Acc _ _ => Acc ;
PF Prepos _ _ => Prepos ;
PF Prepos2 _ _ => Prepos2 -- +++ MG_UR: added +++
} ;
extCase: PronForm -> Case = \pf -> case pf of { PF c _ _ => c } ;
mkPronForm: Case -> AfterPrep -> Possessive -> PronForm =
\c,n,p -> PF c n p ;
@@ -307,11 +299,7 @@ oper sam: Refl=
pgNum : PronGen -> Number -> GenNum = \g,n ->
case n of
{ Sg => case g of
{ PGen Fem => ASg Fem ;
PGen Masc => ASg Masc ;
PGen Neut => ASg Neut ;
_ => ASg Masc } ; -- assuming pronoun "I" is a male
{ Sg => ASg (pgen2gen g) ; -- assuming pronoun "I" is a male
Pl => APl
} ;
-- _ => variants {ASg Masc ; ASg Fem} } ;
@@ -405,21 +393,8 @@ oper gg : Str -> Gender => Str = \s -> table {_ => s} ;
oper
numSF: SubstForm -> Number = \sf -> case sf of
{
SF Sg _ => Sg ;
_ => Pl
} ;
numSF: SubstForm -> Number = \sf -> case sf of { SF n _ => n } ;
caseSF: SubstForm -> Case = \sf -> case sf of
{
SF _ Nom => Nom ;
SF _ Gen => Gen ;
SF _ Dat => Dat ;
SF _ Inst => Inst ;
SF _ Acc => Acc ;
SF _ Prepos => Prepos ;
SF _ Prepos2 => Prepos2 -- +++ MG_UR: added +++
} ;
caseSF: SubstForm -> Case = \sf -> case sf of { SF _ c => c } ;
}