Lexicon extended

This commit is contained in:
Roman Suzi
2020-08-19 23:22:11 +03:00
parent 7a100120af
commit ecb032770e
18 changed files with 5279 additions and 232 deletions
+36 -20
View File
@@ -171,10 +171,18 @@ oper
mkVS : V -> VS ;
mkVQ : V -> VQ ;
mkV2V : V -> Prep -> V2V ;
mkV2S : V -> Prep -> V2S ;
mkV2Q : V -> Prep -> V2Q ;
mkV2A : V -> Prep -> V2A ;
mkV2V : overload {
mkV2V : V -> Prep -> V2V ;
} ;
mkV2S : overload {
mkV2S : V -> Prep -> V2S ;
} ;
mkV2Q : overload {
mkV2Q : V -> Prep -> V2Q ;
} ;
mkV2A : overload {
mkV2A : V -> Prep -> V2A ;
} ;
dirV2 : V -> V2 ;
tvDirDir : V -> V3 ;
@@ -185,7 +193,6 @@ oper
mkAdv : overload {
mkAdv : Str -> Adv ;
mkAdv : Temp -> Pol -> VPSlash -> Adv ; -- introduce transgressive: "делая что-то ," = "(was) (not) doing smth, "
} ;
mkIAdv : Str -> IAdv ;
mkConj : overload {
@@ -379,10 +386,30 @@ oper
mkVS v = lin VS v ;
mkVQ v = lin VQ v ;
mkV2V v prep = lin V2V (v ** {c=prep}) ;
mkV2S v prep = lin V2S (v ** {c=prep}) ;
mkV2Q v prep = lin V2Q (v ** {c=prep}) ;
mkV2A v prep = lin V2A (v ** {c=prep}) ;
mkV2V = overload {
mkV2V : V -> Prep -> V2V
= \v, prep -> lin V2V (v ** {c=prep}) ;
mkV2V : V -> Str -> Case -> V2V
= \v, prep, cas -> lin V2V (v ** {c={s=prep ; c=cas ; neggen=False ; hasPrep=True}}) ;
} ;
mkV2S = overload {
mkV2S : V -> Prep -> V2S
= \v, prep -> lin V2S (v ** {c=prep}) ;
mkV2S : V -> Str -> Case -> V2S
= \v, prep, cas -> lin V2S (v ** {c={s=prep ; c=cas ; neggen=False ; hasPrep=True}}) ;
} ;
mkV2Q = overload {
mkV2Q : V -> Prep -> V2Q
= \v, prep -> lin V2Q (v ** {c=prep}) ;
mkV2Q : V -> Str -> Case -> V2Q
= \v, prep, cas -> lin V2Q (v ** {c={s=prep ; c=cas ; neggen=False ; hasPrep=True}}) ;
} ;
mkV2A = overload {
mkV2A : V -> Prep -> V2A
= \v, prep -> lin V2A (v ** {c=prep}) ;
mkV2A : V -> Str -> Case -> V2A
= \v, prep, cas -> lin V2A (v ** {c={s=prep ; c=cas ; neggen=False ; hasPrep=True}}) ;
} ;
------------------------
-- Adverbs, prepositions, conjunctions, ...
@@ -390,17 +417,6 @@ oper
mkAdv = overload {
mkAdv : Str -> Adv
= \s -> lin Adv (makeAdverb s) ;
mkAdv : Temp -> Pol -> VPSlash -> Adv
= \temp,pol,vps -> lin Adv {
s=vps.adv ! Ag (GSg Neut) P3
++ pol.s
++ case temp.t of {Pres => vps.verb.prtr ; _ => vps.verb.ptr }
++ verbRefl vps.verb
++ case temp.t of {Cond => "бы" ; _ => []}
++ vps.dep
++ vps.compl ! pol.p ! Ag (GSg Neut) P3
++ vps.c.s ; -- comma is needed. Up to user?
} ;
} ;
mkIAdv : Str -> IAdv