(Fin) Fix order of postmodifiers and possessive suffixes

"lasinsa viiniä", not "lasi viiniänsa"
This commit is contained in:
Inari Listenmaa
2020-08-23 11:03:15 +02:00
parent eb6244bc85
commit 32606cfa59
4 changed files with 67 additions and 37 deletions
+12 -5
View File
@@ -1,5 +1,5 @@
concrete ConjunctionFin of Conjunction =
CatFin ** open ResFin, Coordination, Prelude in {
concrete ConjunctionFin of Conjunction =
CatFin ** open ResFin, Coordination, Prelude, (N=NounFin) in {
flags optimize=all_subs ;
@@ -24,7 +24,7 @@ concrete ConjunctionFin of Conjunction =
ConjCN conj ss =
let s = (conjunctDistrTable NForm conj ss).s
in {s = s ; h = Back } ; ---- harmony?
in {s = s ; h = Back ; postmod = \\_ => []} ; ---- harmony?
-- These fun's are generated from the list cat's.
@@ -40,8 +40,15 @@ concrete ConjunctionFin of Conjunction =
ConsAP xs x = consrTable2 Bool NForm comma xs x ;
BaseRS x y = twoTable Agr x y ** {c = y.c} ;
ConsRS xs x = consrTable Agr comma xs x ** {c = xs.c} ;
BaseCN x y = twoTable NForm x y ;
ConsCN xs x = consrTable NForm comma xs x ;
BaseCN x y = twoTable NForm (mergeCN x) (mergeCN y) ; -- put postmod in s field
ConsCN x xs = consrTable NForm comma (mergeCN x) xs;
oper
LinCN : Type = {s : NForm => Str ; h : Harmony ; postmod : Number => Str} ;
-- RS, SC and Adv are in separate fields, to prevent "lasi viiniänsa" for "lasinsa viiniä".
-- But for coordination, we just give up and attach the postmod.
-- Really, if you want to have "lasinsa viiniä ja kuppinsa teetä", just use ConjNP instead.
mergeCN : LinCN -> LinCN = \cn -> cn ** {
s = \\nf => cn.s ! nf ++ cn.postmod ! N.numN nf } ;
lincat
[S] = {s1,s2 : Str} ;