forked from GitHub/gf-core
possessive modification bug fix in Finnish
This commit is contained in:
@@ -18,9 +18,8 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
|
||||
<_, Nom, True,_,_> => NCase Sg Part ; -- kolme kytkintä(ni)
|
||||
<_, _, True,False,_> => NCase Sg c ; -- kolmeksi kytkimeksi
|
||||
<Pl,Nom, _,_,False> => NCase Pl Part ; -- kytkimiä
|
||||
<_, Nom,_,True,_> => NPossNom ; -- kytkime+ni on/ovat...
|
||||
<Sg,Gen,_,True,_> => NPossNom ; -- kytkime+ni vika
|
||||
<Pl,Gen,_,True,_> => NPossGenPl ; -- kytkimie+ni viat
|
||||
<_, Nom,_,True,_> => NPossNom n ; -- kytkime+ni on/ovat...
|
||||
<_, Gen,_,True,_> => NPossNom n ; -- kytkime+ni vika
|
||||
<_, Transl,_,True,_> => NPossTransl n ; -- kytkim(e|i)kse+ni
|
||||
<_, Illat,_,True,_> => NPossIllat n ; -- kytkim(ee|ii)+ni
|
||||
|
||||
@@ -138,7 +137,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
|
||||
} ;
|
||||
|
||||
AdjCN ap cn = {
|
||||
s = \\nf => ap.s ! True ! AN nf ++ cn.s ! nf
|
||||
s = \\nf => ap.s ! True ! AN (n2nform nf) ++ cn.s ! nf
|
||||
} ;
|
||||
|
||||
RelCN cn rs = {s = \\nf => cn.s ! nf ++ rs.s ! agrP3 (numN nf)} ;
|
||||
|
||||
@@ -23,7 +23,8 @@ resource ResFin = ParamX ** open Prelude in {
|
||||
|
||||
NForm = NCase Number Case
|
||||
| NComit | NInstruct -- no number dist
|
||||
| NPossNom | NPossGenPl | NPossTransl Number | NPossIllat Number ;
|
||||
| NPossNom Number | NPossGen Number --- number needed for syntax of AdjCN
|
||||
| NPossTransl Number | NPossIllat Number ;
|
||||
|
||||
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
||||
|
||||
@@ -60,6 +61,14 @@ oper
|
||||
NPAcc => Gen -- appCompl does the job
|
||||
} ;
|
||||
|
||||
n2nform : NForm -> NForm = \nf -> case nf of {
|
||||
NPossNom n => NCase n Nom ; ----
|
||||
NPossGen n => NCase n Gen ;
|
||||
NPossTransl n => NCase n Transl ;
|
||||
NPossIllat n => NCase n Illat ;
|
||||
_ => nf
|
||||
} ;
|
||||
|
||||
|
||||
--2 For $Verb$
|
||||
|
||||
@@ -461,8 +470,9 @@ oper
|
||||
NComit => vetii + "ne" ;
|
||||
NInstruct => vesii + "n" ;
|
||||
|
||||
NPossNom => vete ;
|
||||
NPossGenPl => Predef.tk 1 vesien ;
|
||||
NPossNom _ => vete ;
|
||||
NPossGen Sg => vete ;
|
||||
NPossGen Pl => Predef.tk 1 vesien ;
|
||||
NPossTransl Sg => vede + "kse" ;
|
||||
NPossTransl Pl => vesii + "kse" ;
|
||||
NPossIllat Sg => Predef.tk 1 veteen ;
|
||||
@@ -529,7 +539,7 @@ oper
|
||||
nsa = possSuffix agr
|
||||
in {
|
||||
s = table {
|
||||
NPCase (Nom | Gen) | NPAcc => itse ! NPossNom + nsa ;
|
||||
NPCase (Nom | Gen) | NPAcc => itse ! NPossNom Sg + nsa ;
|
||||
NPCase Transl => itse ! NPossTransl Sg + nsa ;
|
||||
NPCase Illat => itse ! NPossIllat Sg + nsa ;
|
||||
NPCase c => itse ! NCase Sg c + nsa
|
||||
|
||||
Reference in New Issue
Block a user