1
0
forked from GitHub/gf-rgl

Fixed reflexive preffix at the end of participles

This commit is contained in:
Roman Suzi
2020-09-06 09:42:08 +03:00
parent e679629d70
commit 454164a521

View File

@@ -303,7 +303,9 @@ oper
mkA : A -> Str -> A -> A mkA : A -> Str -> A -> A
= \a1,link,a2 -> lin A (mkCompoundA a1 link a2) ; = \a1,link,a2 -> lin A (mkCompoundA a1 link a2) ;
mkA : V -> Voice -> Tense -> A mkA : V -> Voice -> Tense -> A
= \v,voice,t -> case <voice,t> of { = \v,voice,t ->
let refl = case v.refl of {Reflexive => "ся" ; _ => ""} in
case <voice,t> of {
<Pass,Past|Cond> => lin A (guessAdjectiveForms (v.pppss + "ный")) ; <Pass,Past|Cond> => lin A (guessAdjectiveForms (v.pppss + "ный")) ;
<Pass,Pres> => lin A ( -- overgenerated <Pass,Pres> => lin A ( -- overgenerated
let s : Str = case v.prpl1 of { let s : Str = case v.prpl1 of {
@@ -312,15 +314,15 @@ oper
} in } in
makeAdjectiveFormsUseIndex s "" (Z.ZA 1 Z.No Z.A_ Z.NoC) PreferFull) ; makeAdjectiveFormsUseIndex s "" (Z.ZA 1 Z.No Z.A_ Z.NoC) PreferFull) ;
<Act,Pres> => lin A ( <Act,Pres> => lin A (
makeAdjectiveFormsUseIndex (Z.addRefl ((Predef.tk 1 v.prpl3) + "щий")) "" (Z.ZA 4 Z.No Z.A_ Z.NoC) PreferFull) ; makeAdjectiveFormsUseIndex (((Predef.tk 1 v.prpl3) + "щий") + refl) "" (Z.ZA 4 Z.No Z.A_ Z.NoC) PreferFull) ;
<Act,Past|Cond> => lin A ( <Act,Past|Cond> => lin A (
let s : Str = case v.inf of { let s : Str = case v.inf of {
_ + ("сти"|"зти") => (Predef.tk 1 v.prsg1) + "ший" ; -- TODO: check if not all of these cases are ok _ + ("сти"|"зти") => (Predef.tk 1 v.prsg1) + "ший" ; -- TODO: check if not all of these cases are ok
_ => (Predef.tk 1 v.psgm) + "вший" _ => (Predef.tk 1 v.psgm) + "вший"
} in } in
makeAdjectiveFormsUseIndex (Z.addRefl s) "" (Z.ZA 4 Z.No Z.A_ Z.NoC) PreferFull) ; makeAdjectiveFormsUseIndex (s + refl) "" (Z.ZA 4 Z.No Z.A_ Z.NoC) PreferFull) ;
_ => Predef.error "Error: participle for this voice and tense does not exist" _ => Predef.error "Error: participle for this voice and tense does not exist"
} -- TODO: suppress comp and short for all but Pass Pres; take sya into account } -- TODO: suppress comp and short for all but Pass Pres
} ; } ;
ShortenA : A -> A ShortenA : A -> A