Oridnal numerals added ; many fixes

This commit is contained in:
Roman Suzi
2020-08-08 20:30:28 +03:00
parent bbbe9bbb03
commit c0734bdfbb
25 changed files with 4061 additions and 425 deletions
+10 -31
View File
@@ -4,45 +4,28 @@ lin
-- : Adv -> S -> S ; -- then I will go home
AdvS adv s = {s=\\m => adv.s ++ s.s ! m} ;
-- : Adv -> S -> S ; -- next week, I will go home
ExtAdvS adv s = {s=\\m => adv.s ++ comma ++ s.s ! m} ; -- TODO: what is the case for this? embed in commas?
ExtAdvS adv s = {s=\\m => adv.s ++ comma ++ s.s ! m} ;
-- : Temp -> Pol -> Cl -> S ; -- she had not slept - она не спала
UseCl temp pol cl = {
s = table {
Infinitive => let parts = R.verbAgr cl.verb Infinitive temp.t cl.a pol.p in
temp.s ++ parts.p1 ++ cl.subj ++ pol.s ++ cl.adv ++ parts.p2 ++ cl.dep ++ cl.compl ;
Ind => let parts = R.verbAgr cl.verb Ind temp.t cl.a pol.p in
temp.s ++ parts.p1 ++ cl.subj ++ pol.s ++ cl.adv ++ parts.p2 ++ cl.dep ++ cl.compl ;
-- temp.s ++ cl.adv ++ pol.s ++ parts.p1 ++ parts.p2 ++ cl.dep ++ cl.subj ++ cl.compl ;
Sbjv => let parts = R.verbAgr cl.verb Sbjv temp.t cl.a pol.p in
temp.s ++ parts.p1 ++ cl.subj ++ pol.s ++ cl.adv ++ parts.p2 ++ cl.dep ++ cl.compl ;
Imperative => let parts = R.verbAgr cl.verb Imperative temp.t cl.a pol.p in
temp.s ++ parts.p1 ++ cl.subj ++ pol.s ++ cl.adv ++ parts.p2 ++ cl.dep ++ cl.compl
}
s : Mood => Str = \\m => temp.s ++ (R.verbEnvAgr cl.subj cl.adv cl.verb m temp.t cl.a pol) ++ cl.dep ++ cl.compl ;
} ;
-- : Temp -> Pol -> RCl -> RS ; -- that had not slept
UseRCl temp pol rcl = {
s = \\gn,anim,cas =>
let a : Agr = fromMaybe Agr (genNumAgrP3 gn) rcl.a in
let parts = R.verbAgr rcl.verb Ind temp.t a pol.p in
temp.s ++ parts.p1 ++ rcl.subj ! gn ! anim ! Nom ++ rcl.adv ! (genNumAgrP3 gn) ++ pol.s ++ parts.p2 ++ rcl.dep ++ rcl.compl ! (genNumAgrP3 gn)
temp.s
++ (R.verbEnvAgr (rcl.subj ! gn ! anim ! Nom) (rcl.adv ! (genNumAgrP3 gn)) rcl.verb Ind temp.t a pol)
++ rcl.dep ++ rcl.compl ! (genNumAgrP3 gn)
} ;
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
UseSlash temp pol cls = {
s = table {
Infinitive => let parts = R.verbAgr cls.verb Infinitive temp.t cls.a pol.p in
temp.s ++ parts.p1 ++ cls.subj ++ pol.s ++ cls.adv ++ parts.p2 ++ cls.dep ++ cls.compl ;
Ind => let parts = R.verbAgr cls.verb Ind temp.t cls.a pol.p in
temp.s ++ parts.p1 ++ cls.subj ++ pol.s ++ cls.adv ++ parts.p2 ++ cls.dep ++ cls.compl ;
Sbjv => let parts = R.verbAgr cls.verb Sbjv temp.t cls.a pol.p in
temp.s ++ parts.p1 ++ cls.subj ++ pol.s ++ cls.adv ++ parts.p2 ++ cls.dep ++ cls.compl ;
Imperative => let parts = R.verbAgr cls.verb Imperative temp.t cls.a pol.p in
temp.s ++ parts.p1 ++ cls.subj ++ pol.s ++ cls.adv ++ parts.p2 ++ cls.dep ++ cls.compl
} ;
s : Mood => Str = \\m => temp.s
++ (R.verbEnvAgr cls.subj cls.adv cls.verb m temp.t cls.a pol) ++ cls.dep ++ cls.compl ;
c=cls.c
} ;
} ;
-- : NP -> VPSlash -> ClSlash ; -- (whom) he sees
SlashVP np vps = {
@@ -92,8 +75,7 @@ lin
s = \\polarity, gn =>
let pol = case polarity of {Neg => PNeg; Pos => PPos} in
let a = Ag gn P2 in
let parts = R.verbAgr vp.verb Imperative Pres a pol.p in
parts.p1 ++ pol.s ++ parts.p2 ++ vp.dep ++ vp.adv ! a ++ vp.compl ! a
(R.verbEnvAgr "" "" vp.verb Imperative Pres a pol) ++ vp.adv ! a ++ vp.compl ! a
} ;
-- : NP -> VP -> Cl ; -- John walks - Иван гуляет
@@ -121,10 +103,7 @@ lin
-- : Temp -> Pol -> QCl -> QS ; -- who had not slept
UseQCl temp pol cl = {
s = table {_ =>
let parts = R.verbAgr cl.verb Ind temp.t cl.a pol.p in
temp.s ++ parts.p1 ++ cl.subj ++ pol.s ++ cl.adv ++ parts.p2 ++ cl.dep ++ cl.compl
}
s = \\qf => temp.s ++ (R.verbEnvAgr cl.subj cl.adv cl.verb Ind temp.t cl.a pol) ++ cl.dep ++ cl.compl
} ;
-- : QS -> SC ; -- who goes