REPLACED old Russian RG completely

This commit is contained in:
Roman Suzi
2020-07-24 12:59:02 +03:00
parent 4d3e106148
commit 1f9e6aeaad
38 changed files with 6639 additions and 276773 deletions
+49 -75
View File
@@ -1,75 +1,49 @@
--# -path=.:../abstract:../common:../../prelude
concrete AdjectiveRus of Adjective = CatRus ** open ResRus, Prelude in {
flags coding=utf8 ;
lin
PositA a = { s = a.s!Posit ; p = a.p ; preferShort = a.preferShort};
-- Comparative forms are used with an object of comparison, as
-- adjectival phrases ("больше тебя").
ComparA bolshoj tu =
{s = \\af => bolshoj.s ! Compar ! af ++ tu.s ! (mkPronForm Gen Yes NonPoss) ;
p = True ;
preferShort = PrefShort
} ;
---- AR 17/12/2008
UseComparA bolshoj =
{s = \\af => bolshoj.s ! Compar ! af ;
p = True ;
preferShort = PrefShort
} ;
---- AR 17/12/2008
CAdvAP ad ap np = let adp = ad.s in { ---- should be ad.p
s = \\af => ad.s ++ ap.s ! af ++ adp ++ np.s ! (mkPronForm Gen Yes NonPoss) ;
p = True ; ----?
preferShort = ap.preferShort
} ;
---- AR 17/12/2008
AdjOrd a = {
s = a.s ;
p = True ; ---- ?
preferShort = PrefFull
} ;
-- $SuperlA$ belongs to determiner syntax in $Noun$.
ComplA2 vlublen tu =
{s = \\af => vlublen.s !Posit! af ++ vlublen.c2.s ++
tu.s ! (mkPronForm vlublen.c2.c No NonPoss) ;
p = True ;
preferShort = vlublen.preferShort
} ;
ReflA2 vlublen =
{s = \\af => vlublen.s !Posit! af ++ vlublen.c2.s ++ sam.s ! vlublen.c2.c;
p = True ;
preferShort = vlublen.preferShort
} ;
SentAP vlublen sent=
{s = \\af => vlublen.s ! af ++ [", "] ++ sent.s;
p = True ;
preferShort = vlublen.preferShort
} ;
AdAP ada ap = {
s = \\af => ada.s ++ ap.s ! af ;
p = True ;
preferShort = ap.preferShort
} ;
UseA2 a = {
s = \\af => a.s ! Posit ! af ;
p = True ;
preferShort = a.preferShort
} ;
}
concrete AdjectiveRus of Adjective = CatRus ** open ResRus, Prelude, Coordination in {
lin
-- : A -> AP ; -- warm - тёплый
PositA a = adjFormsAdjective a ** {isPost = False} ;
-- : A2 -> AP ; -- married
UseA2 a = adjFormsAdjective a ** {isPost = False} ;
-- : A -> AP ; -- warmer - теплее
UseComparA a = adjFormsAdjective (immutableAdjForms a.comp)
** {isPost = False; preferShort = PrefShort} ; -- TODO: non-qual
-- : AP -> Adv -> AP ; -- warm by nature
AdvAP ap adv = ap ** {s = \\gn,a,c => adv.s ++ ap.s ! gn ! a ! c ; isPost = False} ;
-- : AdA -> AP -> AP ;
AdAP ada ap = ap ** {s=\\gn,a,c => ada.s ++ ap.s ! gn ! a ! c } ;
-- : CAdv -> AP -> NP -> AP ; -- as cool as John
CAdvAP cadv ap np = ap ** {
s = \\gn,a,c => cadv.s ++ ap.s ! gn ! a ! c ++ comma ++ cadv.p ++ np.s ! Nom -- TODO: embedInCommas ?
} ;
-- : AP -> SC -> AP ; -- good that she is here
SentAP ap sc = ap ** {s = \\gn,a,c => ap.s ! gn ! a ! c ++ [", "] ++ sc.s ; isPost = True} ;
-- : A -> NP -> AP ; -- warmer than I - теплее меня
ComparA a np = {
s = \\gn,anim,cas => a.comp ++ (applyPrep {s="" ; c=Gen ; hasPrep=True} np) ;
short = \\ag=>a.comp ++ (applyPrep {s="" ; c=Gen ; hasPrep=True} np) ;
isPost = False ;
preferShort = PrefShort
} ;
-- : Ord -> AP ; -- warmest
AdjOrd ord = adjFormsAdjective ord ** {isPost = False; preferShort = PrefFull} ;
-- : A2 -> NP -> AP ; -- married to him - замужем за ним (NB: gender change requires different word!)
ComplA2 a2 np = let af=adjFormsAdjective a2 in {
s = \\gn,anim,cas => af.s ! gn ! anim ! (a2.c.c) ++ a2.c.s ++ np.s ! (a2.c.c) ;
short = \\a=>af.short ! a ++ a2.c.s ++ np.s ! (a2.c.c) ;
isPost = False ;
preferShort = a2.preferShort
} ;
-- : A2 -> AP ; -- married to itself - замужем за собой
ReflA2 a2 = let af=adjFormsAdjective a2 in {
s = \\gn,anim,cas => af.s ! gn ! anim ! cas ++ a2.c.s ++ sam.s ! (a2.c.c) ;
short = \\a=>af.short ! a ++ a2.c.s ++ sam.s ! (a2.c.c) ;
isPost = False ;
preferShort = a2.preferShort
} ;
}