forked from GitHub/gf-rgl
(Kor) Cleanup in conjunctions
This commit is contained in:
@@ -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} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user