1
0
forked from GitHub/gf-rgl

(Kor) Cleanup in conjunctions

This commit is contained in:
Inari Listenmaa
2020-04-12 22:07:53 +02:00
parent 00c9782c9a
commit f6871ec3c6

View File

@@ -36,43 +36,29 @@ lin
ConjAdv, ConjAdV, ConjIAdv = conjSS ; ConjAdv, ConjAdV, ConjIAdv = conjSS ;
oper oper
ConjSS : Type = SS ** {firstSS : ConjType => Str} ; ConjSS : Type = {s : ConjType => Str} ;
baseSS : SS -> SS -> ConjSS = \s1,s2 -> s2 ** { baseSS : SS -> SS -> ConjSS = \s1,s2 -> {
firstSS = mkFirstSS s1 ; s = \\conj => glue s1.s (conjTable ! NStar ! conj) ++ s2.s ;
} ; } ;
consSS : SS -> ConjSS -> ConjSS = \s,ss -> ss ** { consSS : SS -> ConjSS -> ConjSS = \s,ss -> ss ** {
firstSS = \\conj => s = \\conj => glue s.s (conjTable ! NStar ! conj) ++ ss.s ! conj ;
mkFirstSS s ! conj ++ ss.firstSS ! conj ;
} ; } ;
conjSS : Conj -> ConjSS -> SS = \co,ss -> { conjSS : Conj -> ConjSS -> SS = \co,ss -> {
s = co.s1 ++ ss.firstSS ! co.c ++ ss.s s = co.s1 ++ ss.s ! co.c
} ;
-- Versions with commas, no repeated conjunctions
baseSScomma : SS -> SS -> ConjSS = \s1,s2 -> s2 ** {
firstSS = \\conj => s1.s ++ SOFT_BIND ++ "," ;
} ; } ;
-- Version with commas, no repeated conjunctions!
-- baseSS works for both: always conjunction between penultimate and last.
-- Difference from consSS: conjTable ! NStar ! conj isn't used, only comma.
consSScomma : SS -> ConjSS -> ConjSS = \s,ss -> ss ** { consSScomma : SS -> ConjSS -> ConjSS = \s,ss -> ss ** {
firstSS = \\conj => s = \\conj => s.s
s.s ++ SOFT_BIND ++ "," ++ ss.firstSS ! conj ; ++ SOFT_BIND ++ "," -- Don't add conjunction, only comma
++ ss.s ! conj ;
} ; } ;
conjSScomma : Conj -> ConjSS -> SS = \co,ss -> {
s = co.s1
++ ss.firstSS ! co.c
++ co.s2
++ ss.s
} ;
oper
mkFirstSS : SS -> ConjType => Str = \s ->
\\conj => glue s.s (conjTable ! VStar ! conj) ;
lincat lincat
[S], [RS] = ResKor.Sentence ** {firstS : ConjType => Str} ; [S], [RS] = ResKor.Sentence ** {firstS : ConjType => Str} ;